【发布时间】:2011-05-06 21:22:40
【问题描述】:
所以我花了一些时间检查 CocoaDev,阅读 NSMenuItems 上的 Cocoa 文档,并在 Interface Builder 中进行了一些测试。
在我的应用程序中,我有一个在 Interface Builder 中设计的应用程序菜单 ([NSApp mainMenu])。我看到了三种可能的路径:
将我的操作响应器放在 NSApplicationDelegate 中。这对我来说似乎很奇怪,部分是因为它位于食物链的上游,部分是因为它似乎是固定的。
创建一个子视图,用于侦听各种 NSMenuItem 操作消息。这看起来很有用,但看起来为了让它在响应者链中,可能有一些我无法理解的魔法。
创建一个监听特定应用程序菜单内容的 NSObject,将其放入 xib 中,然后将其连接起来。在我看来,这似乎是目前最好的解决方案,因为我可以隔离东西,而不是依赖响应者链来到达特定对象。但是我想知道,当我的应用程序达到足够复杂的程度时,这是否会成为一个问题,因为它篡夺了响应者链,这可能不仅仅是因为易于使用。
抱歉,问题太长了。有首选方法吗? 谢谢!
【问题讨论】:
标签: objective-c nsmenuitem first-responder