Получение заголовка UIButton в обработчике событий - PullRequest
25 голосов
/ 23 мая 2009

Я создаю кнопку и устанавливаю заголовок как «Нажмите здесь». Когда я нажимаю эту кнопку, я хочу получить название этой кнопки и войти в нее. Вот мой код, где я ошибаюсь?

-(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.
}

Ответы [ 4 ]

72 голосов
/ 25 мая 2009

Ваше отображаемое значение: метод должен выглядеть примерно так:

-(void)displayvalue:(id)sender {       
    UIButton *resultButton = (UIButton *)sender;
    NSLog(@" The button's title is %@.",  resultButton.currentTitle);
}

(Пожалуйста, ознакомьтесь с документацией в XCode, она даст вам правильный ответ.)

13 голосов
/ 04 апреля 2012
-(void)displayvalue:(id)sender 
{
    UIButton *resultebutton= (UIButton*)sender;
    NSLog(@"The button title is %@ ", resultebutton.titleLabel.text);
}
3 голосов
/ 12 марта 2015

Я знаю, что это старый вопрос, но это, вероятно, самый лучший способ решить этот вопрос.

NSLog(@"The button title is: %@", [sender currentTitle]);        

Редактировать
Я только что понял, что это зависит от того факта, что вы установили параметр приема на UIButton*. Вместо использования по умолчанию id, создания объекта UIButton и приведения (id)sender к этой кнопке. Вырежьте среднего человека и просто установите подпись функции на

-(void)buttonPressed:(UIButton*)sender{
  NSLog(@"Button title: %@",sender.currentTitle);
}  

Это фактически приведение параметра функции

1 голос
/ 14 ноября 2014
-(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]);

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