【发布时间】:2015-05-17 15:03:08
【问题描述】:
我正在尝试为我的 Mac OS X 状态栏应用程序添加一项功能。我希望能够沿状态栏移动我的项目,就像您可以为蓝牙或 WiFi 图标等本地操作系统工具所做的那样.
干杯
【问题讨论】:
标签: objective-c macos nsstatusitem nsstatusbar
我正在尝试为我的 Mac OS X 状态栏应用程序添加一项功能。我希望能够沿状态栏移动我的项目,就像您可以为蓝牙或 WiFi 图标等本地操作系统工具所做的那样.
干杯
【问题讨论】:
标签: objective-c macos nsstatusitem nsstatusbar
macOS Sierra 更新:Apple 改进了 NSStatusItem。现在可以通过 ⌘ 拖动重新排序项目。这适用于所有 Apple 的菜单项和所有第三方应用程序。
您可能想要使用NSMenuExtra 的几乎所有原因现在都已被删除,这很棒。所以,现在的答案就是使用NSStatusItem。无需进一步操作。
【讨论】:
您要查找的是NSMenuExtra 而不是NSMenuItem。
Apple 使用NSMenuExtra 表示系统菜单图标,包括 Wi-Fi 和蓝牙。虽然它看起来与普通的NSMenuItem 相似,但NSMenuExtra 有一些特殊功能,特别是在重新启动后保持它们的相对顺序,以及用户可以命令拖动。
不幸的是,NSMenuExtra 完全没有文档记录,因此如果您的目标是 Mac App Store,最好还是坚持使用标准的NSMenuItem。否则,有很多关于如何创建NSMenuExtra 的教程。例如,这里有两个:
【讨论】:
不幸的是,没有“好”的方法可以做到这一点,但是您可以检查这个问题以了解可以做到这一点的黑客:
【讨论】: