Что передается в качестве отправителя на IBAction? - PullRequest
3 голосов
/ 15 ноября 2010

Когда я использую код -(IBAction) onClick1: (id) sender;, что будет передано как sender?Я попытался использовать отправителя в качестве идентификатора объекта и не удалось (я имею в виду, я использовал код sender.tag, и он не вернулся).

Я уверен, что при использовании - (void)buttonTouched1:(UIButton *)sender; здесь отправитель должен выступать в качестве идентификатора объекта.

Ответы [ 2 ]

6 голосов
/ 15 ноября 2010

Отправителем обычно является объект, который вызовет сообщение onClick1. Например, если у вас есть кнопка и вы связываете свое - (IBAction) onClick1: (id) сообщение отправителя с событием «touch up inside» кнопки, то при нажатии на кнопку объект, представляющий кнопку, будет передан на onClick1:

-(IBAction)onClick1:(id)sender
{
   UIButton *button = (UIButton*)sender;
   NSLog(@"%@", button);
}
4 голосов
/ 15 ноября 2010

Переменная sender обычно является объектом, который отправил сообщение действия (это не совсем точно гарантировано - например, вы можете отправить сообщение действия самостоятельно и передать все, что захотите - но вот как это должно работать).

Вы не можете просто написать sender.tag в этих методах, потому что точечная запись требует, чтобы объект имел статический тип, чтобы компилятор знал, какому сообщению соответствует свойство. Если вместо этого вы напишите [sender tag], оно будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...