вызывающее действие, полученное от кнопки - PullRequest
0 голосов
/ 10 сентября 2010

У меня есть следующие требования:

  1. Получить действие, связанное с NSButton, используя : - (SEL)action
  2. Назовите полученное действие.

Можем ли мы выполнить 2-й пункт. Обычно мы вызываем действие, подобное этому - [self abc:nil], просто думая, можем ли мы вызвать метод, полученный из 2-го пункта точно так же!

Спасибо

Miraaj

Ответы [ 2 ]

1 голос
/ 10 сентября 2010

Действие - это просто селектор - имя метода.Любое количество объектов может иметь метод с таким именем, и даже если только один класс реализует метод, у вас может быть любое количество экземпляров этого класса.Таким образом, вы не можете просто вызвать имя метода, потому что это не выражает, какой объект будет отвечать на него.Вам нужен объект, который реализует этот метод, и вам нужно отправить это сообщение с этим именем этому объекту.

Наиболее вероятный объект, на который вы хотите отправить сообщение действия, - это цель кнопки, так что получите это,так же, как вы получили его действие и отправили сообщение этому объекту.Или, что еще лучше, отправьте кнопку a performClick: message ;если вы хотите смоделировать пользователя, нажимающего кнопку, это способ сделать это.

1 голос
/ 10 сентября 2010

Попробуйте:

SEL actionSelector = [button action];
[self performSelector: actionSelector withObject:nil];
...