NSStatusItem不能通过键盘导航

时间:2015-04-27 05:43:55

标签: macos cocoa swift nsstatusitem

我为我的应用创建了一个NSStatusItem,但是当使用Control + F8(Control + fn + f8)时,它希望它可以像系统项一样导航。

导航序列中的状态项被莫名其妙地跳过。是否有接受第一响应者的秘密握手或需要为此做的事情?

这基本上是我对该项目的所有设置代码:

statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(28)
statusItem.menu = menu
statusItem.button?.image = NSImage(named: "menuIcon")

1 个答案:

答案 0 :(得分:2)

我在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

引用科林巴雷特:

  

使用与内置API(NSMenuExtra)不同的API(NSStatusItem)实现第三方项目。请注意,您可以拖动以重新排列菜单附加功能,但不能重新排列状态项(总是显示在菜单附加功能的左侧)。

     

不幸的是,NSMenuExtra是私有API,在Mac App Store中,您可能会看到越来越少的应用程序使用它。

     

正如支持此功能的第三方应用程序的示例一样,您可以使用F8到MenuMeters图标/图表。

因此,如果您真的想通过键盘提供状态菜单项,那么您必须深入了解Apple的私有框架,但这是一个不稳定的领域,因为它们是如有更改,恕不另行通知。