0

如果我们使用 IBAction,我们得到了 sender 对象,对吗?如果我们还有一个指向该按钮的 IBOutlet,该出口是否会指向与发件人相同的地址?

那么我们如何测试相等性呢?有人这样做吗?

4

2 回答 2

2

如果您的 XIB 中有一个按钮并将其连接到您的 IBOutlet 并将其操作连接到您的 IBAction,您将在 IBAction 中获得与 sender 参数相同的指针。所以你可以简单地使用指针比较:if (sender == myButton) { ... }

在某些情况下,使用标签是使用 IBOutlets/变量的替代方法(想想数字键盘的按钮)。我认为它不像 IBOutlet 连接那样“明显”或容易看到,但我在开发数字键盘时使用过它:每个数字按钮都有一个与按钮编号相对应的标签值,而我所要做的就是是评估标签。比十几个比较好。

于 2011-05-06T06:43:38.857 回答
1

当然,您没有理由不能对多个控件使用相同的操作并比较发送者。这几乎就是将发送者传递给操作的重点。

于 2011-05-06T06:43:26.287 回答