UIButton IBAction按钮名称

时间:2011-05-25 14:37:16

标签: objective-c uibutton

我想知道刚被点击的按钮的名称。到目前为止我有这个代码:

- (IBAction)buttonClick:(id)sender{
    NSLog(@"%@",sender);
}

然而,这只会带来很多行话。有没有办法返回刚被点击的按钮的名称?

3 个答案:

答案 0 :(得分:1)

您可以使用the Objective-C runtime functions,但这可能很难。


我建议的是为每个按钮设置tag属性,并创建一个包含每个按钮名称的数组,如下所示:

button1.tag = 0;
button2.tag = 1;
NSArray *buttonNames = [NSArray arrayWithObjects:@"button1", @"button2", nil];

在你的方法中:

- (IBAction)buttonTap:(id)sender { // one cannot *click* on an iOS device
  NSLog(@"%@", [buttonNames objectAtIndex:[(UIButton *)sender tag]);
}

答案 1 :(得分:1)

如果你想知道这个名字只是为了让你知道点击了什么按钮,我认为你不能得到iVar的名字,但还有其他方法可以做到这一点:

您可以获得按钮的标题:

NSString *btnTitle = [sender currentTitle];

或者 - 您可以在Interface Builder视图中为按钮设置标记

NSInteger btnTag = [sender tag];

答案 2 :(得分:0)

尝试

NSLog(@"%@",[sender title]);