Подтвердить что ты не робот

Получение заголовка 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.
}
4b9b3361

Ответ 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]);

}