我想要检测按下哪个按钮。我想知道是否有一些UIButton类的方法可以在按下按钮时自动调用,这使我能够找到按下按钮的文本或标记并将其传递给变量?或者一些相同的objective-c事件方法?检测按下哪个按钮
我知道这个话题已经发布在这里。常见的反应似乎是,这将是解决办法:
在.h文件中
- (IBAction)buttonClicked:(UIButton *)sender;
在.m文件
- (IBAction)buttonPressed:(UIButton *)sender{
// Do something her to display which button pressed
}
我也看到其他的例子,其名称buttonPressed ,onButtonTao等
所以我假设这个方法必须从每个按钮调用。然而,这不起作用,当我尝试将同一个方法分配给多个按钮时,xcode会抱怨。
下面的例子,在这里张贴在堆栈,使用相同的动作,但编程:
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中不接受多个按钮同样的方法?还有其他一些方法可以检测哪个按钮被按下,而无需将特定操作连接到每个按钮?
Xcode以什么方式抱怨? – Wain
将多个控件连接到相同的操作方法是绝对有可能的。你需要对问题更具体。 –