UIButton IBAction按钮名称

问题描述

| 我想知道刚刚点击的按钮的名称。到目前为止,我有以下代码
- (IBAction)buttonClick:(id)sender{
    NSLog(@\"%@\",sender);
}
但是,这只会返回很多行话。有没有办法返回刚刚点击的按钮的名称?     

解决方法

如果您只是想知道名称,以便知道单击了哪个按钮,我认为您不会获得iVar的名称,但是还有其他方法可以做到: 您可以获取按钮的标题:
NSString *btnTitle = [sender currentTitle];
或者-您可以在Interface Builder视图中为按钮设置标签
NSInteger btnTag = [sender tag];
    ,您可以使用Objective-C运行时函数,但这可能很困难。 我建议改为为每个按钮设置
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]);
}
    ,尝试
NSLog(@\"%@\",[sender title]);