我对iOS应用程序中的事件处理提出了一个简单的问题...假设您有一个应用程序,其中有一些按钮可以对调用相同操作的TouchUpInside事件作出反应,操作方法中最好的方法是了解什么是触发事件的按钮?我知道可以使用按钮的标题轻松完成,但我认为如果您有一个本地化的应用程序,其中按钮文本可能会更改(除非可以反转标题的本地化,即从本地化的字符串中检索原始字符串)...是否有关于此主题的良好实践?我应该使用按钮的其他属性来区分不同的按钮吗?
提前感谢您的帮助。
答案 0 :(得分:9)
您可以为UIButton设置一个称为“标签”的东西,或者可以响应事件的任何东西。如果使用的是Interface Builder,请单击该项的属性检查器,然后为该标记选择一个值(整数)。在您的代码中执行类似的操作......
...
- (IBAction)buttonReceived:(id)sender
{
if ([sender tag] == 1) {
//Do something
}
else if ([sender tag] == 2) {
//Do something else
}
}
答案 1 :(得分:3)
除了tag属性之外,或者如果您已经将标记用于其他目的,这意味着一个或多个不同按钮的重复标记值,您始终可以为所需的每个按钮设置IBOutlet ivar检查,然后在IBAction中,做这样的事情:
- (IBAction)buttonReceived:(UIButton *)sender
{
if (sender == myButtonA) {
// processing for button A
}
else if (sender == myButtonB) {
// processing for button B
}
}
这是一项更多的工作,但它有时会派上用场。