Получение заголовка UIButton в обработчике событий
Я создаю кнопку и задаю заголовок как "Нажмите здесь". Когда я нажимаю эту кнопку, я хочу получить название этой кнопки и занести ее в журнал. Вот мой код, где я ошибаюсь?
-(void)clicketbutton {
UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeCustom];
[mybutton setTitle:@"Click here" forState:UIControlStateNormal];
[mybutton addTarget:self
action:@selector(displayvalue:)forControlEvents:UIControlEventTouchUpInside];
}
-(void)displayvalue:(id)sender {
UIButton *resultebutton= [UIButton buttonWithType:UIButtonTypeCustom];
resultebutton=sender;// pls clear here.. my question here , it it possible or not. if possible how ?
NSLog(@" The buttontitile is %@ ", [resultebutton.Title] // here also.
}
Ответы
Ответ 1
Ваше значение displayval: метод должно выглядеть примерно так:
-(void)displayvalue:(id)sender {
UIButton *resultButton = (UIButton *)sender;
NSLog(@" The button title is %@.", resultButton.currentTitle);
}
(Пожалуйста, проверьте документацию в XCode, это дало бы вам правильный ответ.)
Ответ 2
-(void)displayvalue:(id)sender
{
UIButton *resultebutton= (UIButton*)sender;
NSLog(@"The button title is %@ ", resultebutton.titleLabel.text);
}
Ответ 3
Я знаю, это немного старый вопрос, но это, вероятно, самый простой способ решить эту проблему.
NSLog(@"The button title is: %@", [sender currentTitle]);
Edit
Я только что понял, что это зависит от того, что вы установили принимающий параметр в UIButton*
. Вместо использования по умолчанию id
, создав объект UIButton
и выбрав (id)sender
для этой кнопки. Вырежьте среднего человека и просто установите сигнатуру функции на
-(void)buttonPressed:(UIButton*)sender{
NSLog(@"Button title: %@",sender.currentTitle);
}
Это эффективно отбрасывает функциональный параметр
Ответ 4
-(void)clicketbutton {
UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeCustom];
[mybutton setTitle:@"Click here" forState:UIControlStateNormal];
[mybutton addTarget:self
action:@selector(displayvalue:)forControlEvents:UIControlEventTouchUpInside];
}
-(void)displayvalue:(id)sender {
NSLog(@"The title is %@ ", [mybutton titleForState:UIControlStateNormal]);
}