哪个按钮叫做功能?

时间:2010-12-22 03:37:48

标签: iphone objective-c ios

我有两个调用相同功能的按钮。功能签名是 - (IBAction)eraseTextField {...}
我想弄清楚什么按钮叫做函数。所以我希望函数签名就像

- (IBAction)eraseTextField: (id)sender {...}
有没有办法让系统知道将调用对象的id发送给它调用的函数?谢谢您的帮助。

2 个答案:

答案 0 :(得分:3)

如果您使用- (IBAction)eraseTextField: (id)sender,它将以您认为的方式使用界面构建器,发件人将成为在IB中发送方法的对象的ID。

您可以选择使用- (IBAction)eraseTextField and - (IBAction)eraseTextField:(id)sender编写方法,并且发件人将是发件人对象的ID。

答案 1 :(得分:1)

您可以指定标记属性 例如 //使用代码

myButton1.tag = 1;
myButton1.tag = 2;

//使用构建器,转到属性检查器并设置标记字段

然后在 (IBAction为)eraseTextField:(ID)发送方

你可以看到它是哪个标签,例如

switch(sender.tag) {
  case 1: //button 1 clicked
  break;
  case 2: //button 2 clicked
  break;
  default:
  break;
}

这不是一个很好的方法,但它有效。为了便于阅读,您可以将整数分配给常量。如果按钮未在文件所有者中链接,则可以使用此方法。如果它已链接,那么您可以直接比较两者。 e.g。

if (myButton1 == sender) {
  //button 1 clicked
}