我想要檢測按下哪個按鈕。我想知道是否有一些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
將多個控件連接到相同的操作方法是絕對有可能的。你需要對問題更具體。 –