Xcode:跨 XIB 文件的 Outlets 和 Actions
Posted
技术标签:
【中文标题】Xcode:跨 XIB 文件的 Outlets 和 Actions【英文标题】:Xcode: Outlets and Actions across XIB files 【发布时间】:2013-07-24 12:22:33 【问题描述】:我有一个 Document.xib 和一个 MainMenu.xib,以及一个 MainController 类。我通过将 NSObject 从对象库拖到 Document.xib 的实例树并将属性中的类设置为 MainController,将 MainController 的实例添加到 Document.xib。我添加了一个按钮并将其连接到 MainController 提供的操作之一。
到目前为止,很清楚。现在我基本上想从菜单项中调用相同的操作。显然,我不能只将 MainController 的另一个实例添加到 MainMenu.xib,因为我最终会得到两个实例。每个文档应该只有一个,并且菜单项应该调用活动文档的 MainController 中的操作。我该怎么做?
【问题讨论】:
【参考方案1】:这就是 First Responder 代理图标的用途。您可以将菜单项连接到 First Responder 代理,消息将沿响应者链向上发送,直到它们到达处理消息的对象。您的文档以及视图和其他对象将参与响应者链,因此将有机会处理消息,前提是链中较早的对象尚未这样做。响应者链概念还确保消息被传递到活动文档——如果您打开了多个文档,您自然希望菜单命令由用户正在处理的文档处理。
因此,只需将 First Responder 图标作为您的菜单项的目标,就会发生正确的事情。
【讨论】:
谢谢。这似乎是正确的答案。但是,如果我这样做,菜单项将显示为灰色。 好的,还有另一个错误导致它无法工作。现在可以了,谢谢!以上是关于Xcode:跨 XIB 文件的 Outlets 和 Actions的主要内容,如果未能解决你的问题,请参考以下文章
iOS - Interface Builder Outlets 未初始化