我有一个非常简单的Mac应用程序,使用XCode 4构建(现在只是一个空白形式)。现在,我已经通过界面生成器向我的AppDelegate添加了一个按钮和一个方法:
-(IBAction) btnScanClicked
{
NSLog(@"Hello!");
}
当我启动我的应用程序时,我收到以下消息:
无法将操作 btn扫描单击: 连接到类的目标 应用委托
这是否意味着我无法向我的应用程序委托添加任何事件处理程序?我还能把它们放在哪里,我如何使用界面生成器进行设置?
问题是您没有正确声明操作方法。将定义替换为:
-(IBAction) btnScanClicked:(id)sender {
请注意错误消息如何指出它无法连接到btnScanClicked:
末尾的冒号不是标点符号 - 它表示消息采用参数。
与UIKit
不同的是,操作方法需要采用以下形式:
- (void)methodName:(id)sender
IBAction
只是解析为 void
,但它是接口生成器的指示器,表明它是一种可以通过上下文拖动挂钩的方法。