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