可可无法联系行动

时间:2014-07-25 04:18:10

标签: objective-c macos cocoa

我一直在摆弄Objective-C + Cocoa并编写一个相当简单的Cocoa应用程序。然后我遇到了一个运行时错误,它对我的​​程序执行没有影响:

  

无法将动作textField:连接到类BarController的目标

我正在尝试从MainMenu.xib中拉出一些窗口并使用单独的控制器和xib文件加载它们。

在新xib中的一个窗口中,我创建了一个文本字段,并将其链接到新的NSWindowController子类中的IBOutlet NSTextField(textField)。它工作正常,我可以使用textField来更新文本字段的内容。

我很好奇为什么我得到上面的运行时错误,我希望理解它会清除UI构建过程中的一些魔力。

1 个答案:

答案 0 :(得分:0)

普通IBOutlets并没有多大的魔力,真的 - 当使用通过First Responder和响应者链发送到某个未知目标的Bindings或动作时,这种乐趣开始了: - )

关于你的错误:
听起来您已将插座连接到目标类中不存在的目标?

您可能已在File Owner(或某个其他代理对象)中的某个属性建立了连接,但该所有者的类位于MyAppDelegate
然后你已经将窗口(或包含插座的其他对象)移动到其他.xib,现在所有者的类MyWindowController没有与您的插座连接的同名属性 - 瞧,运行时将无法在运行时为您的插座建立连接。

只需在界面编辑器中仔细检查您的插座,可能已经在看起来很腥的插座旁边显示了某种警告消息。

删除或重新分配它们,你就完成了。