例如,我有一个标题为“History”的 NSMenuItem
类型变量。我需要一个键盘快捷键 Meta+h 来执行与单击此菜单项相同的操作(弹出子菜单列表)..
我认为可能有两种方法来实现这一点:
1.将此菜单项绑定(bind)到键盘快捷键,然后当快捷键被触发时,Cocoa将触发执行属于该菜单项的操作
2.未将键盘快捷键绑定(bind)到该项目。为Meta+h创建一个EventHandler,当事件激活时,模拟鼠标点击菜单项。
但是,这两种方法目前都不起作用。
对于键盘快捷键,有一个名为 setKeyEquivalent
的方法,但它使用 Command 而不是 Meta 作为修饰符。其结果是执行绑定(bind)到菜单项的操作,而不是弹出子菜单。
对于模拟鼠标点击,在Cocoa的NSMenuItem
引用中,我还没有看到如何将click
这样的事件发送到NSMenuItem
..
有人对此有什么想法吗?谢谢!
最佳答案
[menuItem setKeyEquivalent:@" "];
[menuItem setKeyEquivalentModifierMask:0];
与任何这些修饰键掩码(使用 C 按位 OR 运算符组合):
- NSShiftKeyMask
- NSAlternateKeyMask
- NSCommandKeyMask
- NSControlKeyMask
(顺便说一句,Apple's docs 真的很有用!)
关于objective-c - 模拟鼠标点击 Cocoa 中的菜单项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22005871/