【发布时间】:2015-05-21 19:46:27
【问题描述】:
例如,我有一个标题为“历史”的NSMenuItem 类型变量。我需要一个键盘快捷键 Meta+h 来执行与单击此菜单项相同的操作(弹出子菜单列表)..
我认为可能有两种实现方式:
1.将此菜单项绑定到键盘快捷键,然后Cocoa会在快捷键触发时触发执行属于该菜单项的动作
2.不绑定键盘快捷键到项目。为Meta+h创建一个EventHandler,当事件激活时,模拟鼠标点击菜单项。
但是,这两种方法目前都不起作用。
对于键盘快捷键,有一个名为setKeyEquivalent的方法,但它使用Command而不是Meta作为修饰符。其结果是执行绑定到菜单项的操作,而不是弹出子菜单。
为了模拟鼠标点击,在 Cocoa 的NSMenuItem 参考中,我还没有看到如何将click 之类的事件发送到NSMenuItem..
有人对此有想法吗?谢谢!
【问题讨论】:
-
你真的不想用菜单模拟鼠标点击,除非你的建筑辅助功能或自动化工具。它需要摆弄 runloops
标签: objective-c macos cocoa keyboard-shortcuts