Как получить название кнопки в действии? - PullRequest
0 голосов
/ 12 ноября 2010

У меня есть кнопка с именем start, и я хочу узнать в методе, что она вызывает, как она называется, и я не совсем уверен, как это сделать. Это метод, который вызывает кнопка.

-(IBAction) startMotion: (id)sender {
    UIButton * buttonName = (UIButton *) sender;
    NSLog(@"Button Name:  %@", buttonName.currentTitle);
}

NSLog печатает

Имя кнопки: (ноль)

Ответы [ 3 ]

4 голосов
/ 12 ноября 2010

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

[b setTitle:@"Start" forState:UIControlStateNormal];

и получить заголовок (currentTitle только для чтения и может быть нулевым):

[b currentTitle];

Кстати, есливы просто хотите различать несколько кнопок, вы можете просто установить свойство тега (целочисленное значение) для кнопок.

Кроме того, проверьте, есть ли у вас кнопка, указанная в качестве IBOutlet в вашем классе viewController, и является ли онаправильно подключен как розетка в Интерфейсном Разработчике?

2 голосов
/ 08 мая 2012

Я бы предпочел установить определенный тег и сравнивать значение тега, а не читать заголовок кнопки, поскольку у вас есть возможность локализовать приложение, где заголовки кнопок могут отличаться.

1 голос
/ 12 ноября 2010

Я использовал неправильное свойство в Interface Builder. Я использовал свойство name кнопки в Interface Builder вместо свойства title в настройках кнопки.

...