我已经为我的应用程序创建了一个NSStatusItem,但希望它在使用Control+F8 (Control+fn+f8)时能够导航,就像系统项一样。
状态项在导航序列中被莫名其妙地跳过。是否有秘密握手,接受第一反应,或什么事情需要做的这一点?
这基本上是我为该项所拥有的所有设置代码:
statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(28)
statusItem.menu = menu
statusItem.button?.image = NSImage(named: "menuIcon")发布于 2015-04-27 19:58:46
我在quoara.com上发现了一个类似的问题:http://www.quora.com/Why-cant-I-focus-third-party-icons-in-the-status-menu-area-on-OS-X-with-a-keyboard-shortcut-like-Ctrl-F8-SOLVED。
引用科林·巴雷特的话:
第三方项是用与内置项(NSStatusItem)不同的API (NSMenuExtra)实现的。请注意,可以拖动以重新排列菜单附加项,但不能重新排列状态项(状态项总是显示在菜单附加项的左侧)。 不幸的是,NSMenuExtra是私有API,在Mac中,您可能会看到越来越少的应用程序使用它。 作为支持这个功能的第三方应用程序的一个例子,您可能可以F8到MenuMeters图标/图形。
因此,如果你真的想让你的状态菜单项可以通过键盘获得,你必须在苹果的私有框架中挖掘,然而这是一个不稳定的领域,因为它们随时都会改变,没有任何通知。
发布于 2022-11-19 16:21:44
至少在macOS 10.12中,可以使用带有Control+F8的键盘导航到NSStatusItem。这一变化大概发生在OSX10.10和macOS 10.12之间(我还没有在10.12之前的任何版本中测试过这一点)。
为了启用键盘导航,必须定义NSStatusItem的menu属性。
https://stackoverflow.com/questions/29888032
复制相似问题