在 NSPopupButton 菜单中使用与主菜单中相同的 keyEquivalent
Use same keyEquivalent in NSPopupButton menu as in Main menu
我有一个 NSPopUpButton
,其中有几个菜单项向一些主菜单项公开了相同的功能。这些是与用户当前上下文最相关的操作。
为了表明这些项目也有 keyEquivalent
s(快捷方式),我想将它们的 keyEquivalent
s 设置为与主菜单中的项目相同的键。
不幸的是,这似乎不起作用,因为冲突的项目现在已在主菜单中删除了它们的 keyEquivalent
(大概由 AppKit 自动删除)。
是否可以在 NSPopUpButton
菜单中显示相同的 keyEquivalent
?
通常上下文菜单不是显示快捷方式信息的最合乎逻辑的地方。然而,如果你真的想要这个,那么最好的/可能唯一可行的选择是重用你想在 NSPopUpButton
中显示的主菜单中的菜单,如下所示:
myPopUpButton.menu = (NSApp.delegate as! AppDelegate).myMenu
在此示例中,myMenu
是应用程序主菜单的 NSMenu
项之一的 @IBOutlet
。
如果您想在弹出窗口中显示稍微不同的菜单,那么您可以实现 NSMenuDelegate
的 menuWillOpen
来动态隐藏或添加菜单项。
我有一个 NSPopUpButton
,其中有几个菜单项向一些主菜单项公开了相同的功能。这些是与用户当前上下文最相关的操作。
为了表明这些项目也有 keyEquivalent
s(快捷方式),我想将它们的 keyEquivalent
s 设置为与主菜单中的项目相同的键。
不幸的是,这似乎不起作用,因为冲突的项目现在已在主菜单中删除了它们的 keyEquivalent
(大概由 AppKit 自动删除)。
是否可以在 NSPopUpButton
菜单中显示相同的 keyEquivalent
?
通常上下文菜单不是显示快捷方式信息的最合乎逻辑的地方。然而,如果你真的想要这个,那么最好的/可能唯一可行的选择是重用你想在 NSPopUpButton
中显示的主菜单中的菜单,如下所示:
myPopUpButton.menu = (NSApp.delegate as! AppDelegate).myMenu
在此示例中,myMenu
是应用程序主菜单的 NSMenu
项之一的 @IBOutlet
。
如果您想在弹出窗口中显示稍微不同的菜单,那么您可以实现 NSMenuDelegate
的 menuWillOpen
来动态隐藏或添加菜单项。