Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何将isAlternative与带有customView的NSMenuItem一起使用?_Macos_Cocoa_Nsmenu_Nsmenuitem_Nsstatusbar - Fatal编程技术网

Macos 如何将isAlternative与带有customView的NSMenuItem一起使用?

Macos 如何将isAlternative与带有customView的NSMenuItem一起使用?,macos,cocoa,nsmenu,nsmenuitem,nsstatusbar,Macos,Cocoa,Nsmenu,Nsmenuitem,Nsstatusbar,我正在尝试将isAlternative属性与具有自定义视图的NSMenuItem一起使用。在没有自定义视图的情况下,它不能作为标准NSMenuItem运行。在自定义视图中使用NSMenuItems时,如何获得标准的修改器键切换行为 标准菜单项行为 添加一个菜单项。 添加一个额外的菜单项,其中.isAlternate==true,.keyEquivalentModifierMask=[.option](或另一个适当的修改器键) 显示菜单时,将显示第一个菜单项。按住修改器键时,原始菜单项将替换为备用

我正在尝试将isAlternative属性与具有自定义视图的NSMenuItem一起使用。在没有自定义视图的情况下,它不能作为标准NSMenuItem运行。在自定义视图中使用NSMenuItems时,如何获得标准的修改器键切换行为

标准菜单项行为 添加一个菜单项。 添加一个额外的菜单项,其中.isAlternate==true,.keyEquivalentModifierMask=[.option](或另一个适当的修改器键)

显示菜单时,将显示第一个菜单项。按住修改器键时,原始菜单项将替换为备用菜单项

自定义菜单项行为 添加具有自定义视图的菜单项。 使用.isAlternate==true和.keyEquivalentModifierMask=[.option](或其他适当的修改器键)的自定义视图添加其他菜单项

显示菜单时,将始终显示原始菜单项和备用菜单项,而不是标准切换行为

参考文献

AFAIK您不能-它不适用于
isAlternative
,您必须自己实现它。不幸的是,据我所知,键盘事件(包括修改器标志)没有传播到NSMenu。如果我设置了一个外部事件监听器,我需要向用户请求完全可访问性权限,这似乎太多了。有没有一种简单或明显的方法可以添加我忽略的键盘处理程序?好吧,你不能-它不适用于
isAlternative
,你必须自己实现它。不幸的是,据我所知,键盘事件(包括修改器标志)没有传播到NSMenu。如果我设置了一个外部事件监听器,我需要向用户请求完全可访问性权限,这似乎太多了。有没有一种简单或明显的方法来添加我忽略的键盘处理程序?