NSStatusItem沿状态栏重新排序

时间:2015-05-17 15:03:08

标签: objective-c macos nsstatusitem nsstatusbar

我正在尝试为Mac OS X的状态栏应用添加一项功能。我希望能够沿着栏移动我的项目,就像您可以为本机操作系统工具(如蓝牙或WiFi)一样

干杯

3 个答案:

答案 0 :(得分:2)

更新macOS Sierra :Apple改进了NSStatusItem。现在可以通过⌘-拖动重新排序项目。这适用于所有Apple的菜单项和所有第三方应用程序。

现在已经删除了你想要使用NSMenuExtra的所有原因,这很好。所以,现在的答案就是使用NSStatusItem。无需采取进一步行动。

答案 1 :(得分:1)

您要找的是NSMenuExtra,而不是NSMenuItem

Apple使用NSMenuExtra作为系统菜单图标,包括Wi-Fi和蓝牙。虽然它看起来与常规NSMenuItem类似,但NSMenuExtra具有一些特殊功能,特别是在重新启动后保持其相对顺序,以及用户的Command-Draggable。

不幸的是,NSMenuExtra完全没有文档记录,因此如果您要定位Mac App Store,最好坚持使用标准NSMenuItem。否则,有很多关于如何创建NSMenuExtra的教程。例如,以下是其中两个:

答案 2 :(得分:0)

不幸的是,没有好的'这样做的方法,但你可以检查这个问题的黑客可以做到这一点:

How to drag NSStatusItems