NSStatusItem 沿状态栏重新排序

NSStatusItem reordering along Status Bar

我正在尝试为 Mac OS X 向我的状态栏应用程序添加一项功能。我希望能够沿着栏移动我的项目,就像您可以为本机 OS 工具,例如蓝牙或 WiFi 图标。

干杯

不幸的是,没有 'good' 方法可以做到这一点,但是您可以检查这个问题以找到可以做到这一点的技巧:

How to drag NSStatusItems

您要查找的是 NSMenuExtra 而不是 NSMenuItem

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

不幸的是,NSMenuExtra 完全没有记录,因此如果您的目标是 Mac App Store,最好坚持使用标准 NSMenuItem。否则,有一堆关于如何创建 NSMenuExtra 的教程。例如,这里有两个:

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

几乎所有您可能想使用 NSMenuExtra 的原因现在都已删除,这很棒。所以,现在的答案是只使用 NSStatusItem。无需进一步操作。