1

我有一个用 XCode 4 构建的非常简单的 Mac 应用程序(现在只是一个空白表格)。现在,我通过 Interface Builder 添加了一个按钮,并为我的 AppDelegate 添加了一个方法:

-(IBAction) btnScanClicked
{
    NSLog(@"Hello!");
}

当我启动我的应用程序时,我收到以下消息:

无法将操作 btnScanClicked: 连接到 AppDelegate 类的目标

这是否意味着我不能向我的 AppDelegate 添加任何事件处理程序?我还能把它们放在哪里,我将如何使用 Interface Builder 进行设置?

4

1 回答 1

4

问题是您没有正确声明操作方法。将定义替换为:

-(IBAction) btnScanClicked:(id)sender {

请注意错误消息如何指出它无法连接到btnScanClicked:末尾的冒号不是标点符号 - 它表示该消息带有一个参数。

UIKit动作方法不同,需要采用以下形式:

- (void)methodName:(id)sender

IBAction只是解析为void,但它向 Interface builder 指示它是一种可以通过上下文拖动连接的方法。

于 2012-11-24T17:32:32.780 回答