1

我有以下要求:

  1. 获取与NSButton使用相关的操作: - (SEL)action
  2. 调用获得的动作。

我们可以执行第 2 点吗?通常我们调用这样的动作——[self abc:nil]只是想我们是否可以调用从 2nd pt 获得的方法。以同样的方式!

4

2 回答 2

2

尝试:

SEL actionSelector = [button action];
[self performSelector: actionSelector withObject:nil];
于 2010-09-10T10:26:50.150 回答
1

动作只是一个选择器——方法的名称。任意数量的对象都可能有同名的方法,即使只有一个类实现了该方法,您也可能拥有该类的任意数量的实例。因此,您不能只调用方法的名称,因为这并不能表示什么对象会响应它。您需要一个实现该方法的对象,并且您需要使用该名称将该消息发送到该对象。

最有可能您希望将操作消息发送到的对象是按钮的目标,因此请以与获取其操作相同的方式获取它,并将消息发送到该对象。或者,更好的是,向按钮发送performClick:消息;如果您想模拟用户单击按钮,那就是这样做的方法。

于 2010-09-10T15:47:37.147 回答