在Xcode 4,2.1中进行IBAction连接时定义发送方的类

时间:2011-12-31 17:57:13

标签: xcode xcode4 xcode4.2

在Xcode 4或更高版本中,它有一个方便的功能,允许我们按CTRL +将对象从界面拖动到.h文件,以快速连接对象与事件方法(假设启用了助理编辑器)。

假设我们在界面中有一个UIButton,我们想为其“内部触摸”添加一个IBAction,我们启用助手窗口并按住/按住CTRL +将按钮拖动到.h文件以快速生成必要的代码。

在弹出式提示框中,假设我们将“连接”设置为“操作”。

在“类型”下拉列表中,我们可以选择“id”或“UIButton”。 < ---这就是我的问题所在。

Xcode 4.2.1中的奇怪之处在于:无论我选择什么,它总是生成代码:“(id)sender”作为参数。

我知道手动将其更改为“(UIButton *)sender”很容易,但是当它总是生成“(id)”时,这个下拉列表的重点是什么?

这是Xcode的错误还是我在这个下拉列表中选择“UIButton”时错过了让它直接生成代码“(UIButton *)sender”的东西?

  

于2012年2月27日编辑:这已在Xcode 4.3中得到证实

1 个答案:

答案 0 :(得分:0)

- (void)action:(id)sender就是定义动作的方式。理论上,您可以将不同的UI元素连接到同一个动作。在您创建了连接之后,您可以手动将id更改为您想要的任何类,或者只是在方法内部进行强制转换。