将NSMenu命令传输到当前窗口?

时间:2011-07-25 18:37:55

标签: cocoa macos

新手OS X开发人员,虽然对iOS很有经验。

我遗漏了一些关于顶级NSMenu与应用程序交互方式的基本知识。我希望File-> Save命令转到当前窗口。到目前为止,我只能在app委托中接收NSMenu操作。我应该跟踪那里的活动窗口并从app delegate调用方法吗?

1 个答案:

答案 0 :(得分:2)

首先,听起来你需要在Mac菜单处理上read up,因为为了正确处理菜单,你需要了解很多东西。

要回答您的具体问题,如果菜单项的目标为nil,例如Save菜单项,则菜单处理系统会从当前活动状态开始响应响应者链控制或查看(第一响应者),寻找实现该菜单项的动作选择器的对象。

如果你不理解响应者链是如何工作的,你应该read about that too,因为它是理解Mac应用程序如何工作的基础。

如果您希望窗口控制器在其窗口是主窗口时处理‑save:操作,那么您需要做的就是在窗口控制器中实现‑save:操作。因为窗口控制器在应用程序委托之前位于响应程序链中,所以将使用它的方法实现。