我希望能够检测到按下了哪个按钮。我想知道是否有一些 UIButton 类方法可以在按下按钮时自动调用,它允许我找出按下按钮的文本或标签并将其传递给变量?或者一些同样的objective-c事件方法?
我知道这个话题之前已经在这里发布过。普遍的反应似乎是这将是解决方案:
在 .h 文件中
- (IBAction)buttonClicked:(UIButton *)sender;
在 .m 文件中
- (IBAction)buttonPressed:(UIButton *)sender{
// Do something her to display which button pressed
}
我还看到了其他名称的示例,例如 buttonPressed、onButtonTao 等。
所以我假设必须从每个按钮调用此方法。但是,这不起作用,当我尝试将相同的方法分配给多个按钮时,xcode 会抱怨。
以下示例(在 Stack 此处发布)使用相同的操作,但以编程方式:
for( int i = 0; i < 5; i++ ) {
UIButton* aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[aButton setTag:i];
[aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[aView addSubview:aButton];
}
// then ...
- (void)buttonClicked:(UIButton*)button
{
NSLog(@"Button %ld clicked.", (long int)[button tag]);
}
那么,我在这里缺少什么,为什么 xcode 不接受多个按钮的相同方法?还有其他方法可以检测按下哪个按钮而不将特定操作连接到每个按钮?