是否可以在没有“编辑”菜单项的Cocoa应用程序中使用“编辑”功能?

时间:2014-10-06 22:10:50

标签: objective-c macos cocoa keyboard-shortcuts about-box

我正在开发一个Cocoa应用程序,最终在主窗口菜单中只有2个项目。 “编辑”菜单项中不包含这些项目。是否可以将“编辑”项的所有功能添加到应用程序而无需“编辑”?我正在谈论所有的复制,粘贴,撤消等....我知道可以通过在窗口控制器中添加键盘监听器来做到这一点,但我想知道这是否可以通过其他任何方式完成?

我想以不同方式执行此操作的原因是我仍然希望在本机“关于”窗口中使用这些命令。那个窗口没有一个控制器(我知道)可以添加一个监听器。如果有人有关于如何做到这一点的其他想法,我会全力以赴。

1 个答案:

答案 0 :(得分:3)

是。编辑菜单项只是发送任意"消息"到#34;响应者链"。

[[NSApplication sharedApplication] sendAction:@selector(copy:) to:nil from:self];

如果您查看界面构建器中的事件菜单项,您可以看到正在发送的选择器列表。

来自文档:

  

如果aTarget为nil,则sharedApplication会查找可以响应消息的对象,即实现与anAction匹配的方法的对象。它从关键窗口的第一个响应者开始。如果第一响应者不能响应,则它尝试第一响应者的下一个响应者并继续跟随下一个响应者链接响应者链。如果密钥窗口的响应者链中没有任何对象可以处理该消息,则sharedApplication会尝试将该消息发送给密钥窗口的委托。

更多细节在这里:

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/EventArchitecture/EventArchitecture.html#//apple_ref/doc/uid/10000060i-CH3-SW2