可可无法连接动作
Posted
技术标签:
【中文标题】可可无法连接动作【英文标题】:cocoa could not connect action 【发布时间】:2014-07-25 04:18:09 【问题描述】:我一直在摆弄 Objective-C + Cocoa 并编写一个相当简单的 Cocoa 应用程序。然后我遇到了一个对我的程序执行没有影响的运行时错误:
无法将操作 textField: 连接到类 BarController 的目标
我正在尝试从 MainMenu.xib 中拉出一些窗口,并使用单独的控制器和 xib 文件加载它们。
在新 xib 的一个窗口中,我创建了一个文本字段并将其链接到新 NSWindowController 子类中的 IBOutlet NSTextField (textField)。它有效,我可以使用 textField 来更新文本字段的内容。
我很好奇为什么会出现上述运行时错误,我希望理解它会解开 UI 构建过程中的一些魔力。
【问题讨论】:
【参考方案1】:简单的IBOutlets
并没有什么魔力,真的 - 当使用绑定或通过 First Responder 和响应者链发送到某个未知目标的操作时,乐趣就开始了 :-)
关于您的错误:听起来您已将插座连接到目标类中不存在的目标?
您可能已经在所有者的类所在的某个位置建立了与File Owner
(或其他代理对象)中的属性的连接,例如MyAppDelegate
.
然后,您将窗口(或包含插座的其他对象)移动到其他某个 .xib,现在所有者的类是 MyWindowController
,它没有与您连接插座的同名属性 - 瞧,运行时将无法在运行时为您的插座建立连接。
只需在界面编辑器中仔细检查您的网点,可能已经在看起来可疑的网点旁边显示了某种警告消息。
删除或重新分配它们就完成了。
【讨论】:
谢谢!我删除/重新创建了对象并注意到我仍然需要一个 IBAction 方法(即使文本字段已禁用可编辑!)。所以它抱怨我没有办法,也没有明显的运行时问题。 是的,不幸的是,这些问题在运行时并没有真正出现(至少在默认设置/标志/环境变量中)。以上是关于可可无法连接动作的主要内容,如果未能解决你的问题,请参考以下文章
Mac OS X 可可应用程序中的 Internet 连接通知