UIButton IBAction название кнопки - PullRequest
0 голосов
/ 25 мая 2011

Я хочу знать название только что нажатой кнопки. У меня есть этот код до сих пор:

- (IBAction)buttonClick:(id)sender{
    NSLog(@"%@",sender);
}

Однако, это просто возвращает много жаргона. Есть ли способ вернуть название только что нажатой кнопки?

Ответы [ 3 ]

1 голос
/ 25 мая 2011

Вы можете использовать функции времени выполнения Objective C , но это может быть сложно.


Вместо этого я рекомендую установить свойство tag для каждой кнопки и создать массив с именами каждой кнопки, например:

button1.tag = 0;
button2.tag = 1;
NSArray *buttonNames = [NSArray arrayWithObjects:@"button1", @"button2", nil];

В вашем методе:

- (IBAction)buttonTap:(id)sender { // one cannot *click* on an iOS device
  NSLog(@"%@", [buttonNames objectAtIndex:[(UIButton *)sender tag]);
}
1 голос
/ 25 мая 2011

Если вы хотите знать имя только для того, чтобы знать, какая кнопка была нажата, я не думаю, что вы можете получить имя iVar, но есть другие способы сделать это:

Выможно получить заголовок кнопки:

NSString *btnTitle = [sender currentTitle];

В качестве альтернативы - Вы можете установить тег для кнопки в представлении Interface Builder

NSInteger btnTag = [sender tag];
0 голосов
/ 25 мая 2011

попробуй

NSLog(@"%@",[sender title]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...