3

我有一个关于 iOS 应用程序中的事件处理的简单问题......假设你有一个应用程序有一些按钮,这些按钮对调用相同操作的 TouchUpInside 事件做出反应,在操作方法中了解触发的按钮是什么的最佳方法是什么事件?我知道使用按钮的标题可以轻松完成,但我认为如果您有一个本地化应用程序,其中按钮文本可能会更改(除非可以反转标题的本地化,即从本地化字符串中检索原始字符串)...关于这个主题有没有好的做法?我应该使用按钮的其他属性来区分不同的按钮吗?

预先感谢您的任何帮助。

4

2 回答 2

9

您可以为 UIButtons 设置一个称为“标签”的东西,或者任何可以响应事件的东西。如果您使用的是 Interface Builder,请单击项目的属性检查器并为标记选择一个值(整数)。在你的代码中做这样的事情......

...

- (IBAction)buttonReceived:(id)sender
{ 
    if ([sender tag] == 1) {
       //Do something
    }
    else if ([sender tag] == 2) {
       //Do something else
    }
}
于 2011-10-15T20:36:41.873 回答
3

除了标签属性,或者如果您已经将标签用于其他目的,这意味着一个或多个不同按钮的重复标签值,您始终可以为您需要检查的每个按钮设置一个 IBOutlet ivar,然后在 IBAction 中,执行以下操作:

- (IBAction)buttonReceived:(UIButton *)sender
{ 
    if (sender == myButtonA) {
       // processing for button A
    }
    else if (sender == myButtonB) {
       // processing for button B
    }
}

这是一个多一点的工作,但它有时会派上用场。

于 2011-10-15T20:44:15.923 回答