如何在26个不同按钮的IBAction中有选择地设置变量?

时间:2012-07-15 23:14:49

标签: objective-c ibaction

对于我的程序,我想要一组按钮,一个用于字母表中的每个字母。当用户按下按钮时,我希望将变量设置为按下的按钮的值,并且搜索要在许多字符串中执行的该值。如何只访问 - (IBActon)中按下的按钮的值,而不为每个按钮设置26个独立的插座?

2 个答案:

答案 0 :(得分:1)

您可以设置IBAction,以便将触发事件的按钮传递给方法。您可以使用该参数来确定按下了哪个字母,并且只对所有按钮执行一个操作:

- (IBAction)letterTapped:(id)sender {
    NSString *letter =  [sender titleForState:UIControlStateNormal];
    // do something with the letter
}

答案 1 :(得分:0)

Stew的答案很简洁,虽然我想用他的模板添加更多信息。

- (IBAction)letterTapped:(id)sender {
    NSString *character =  [sender titleForState:UIControlStateNormal];

    [self setLetter:character];
}

-(void)setLetter(NSString *)_aLetter{
    //your global variable that stores your letter
    globalLetterVariable = _aLetter;
}

或者你可以在方法本身内一次性完成。

- (IBAction)letterTapped:(id)sender {
    NSString *character =  [sender titleForState:UIControlStateNormal];
    //your global variable that stores your letter
    globalLetterVariable = character;
}