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