objective-c – Cmd单击以移动状态项

通过使用cmd单击并拖动,可以将Apple提供的状态项内置电池,Wi-Fi,声音等拖动到菜单上的任何位置:

如何在我自己的状态项中支持类似的功能

解决方法

有两种方法可以在菜单栏的右侧获取菜单.官方支持的方式是在您的应用程序中创建NsstatusItem.其他方法是创建NSMenuExtra.您已经注意到一个区别:NsstatusItem菜单已固定到位,而菜单附加功能可以通过cmd拖动它们来移动.

一个主要区别以及第三方菜单附加功能未得到官方支持的原因是,与状态项(作为单独的应用程序运行)不同,菜单附加功能会加载到systemUIServer进程的地址空间中.这意味着如果他们发生混乱并崩溃,他们可以取消用户界面.

您可以在/ System / Library / CoreServices / Menu Extras上看到系统上安装的菜单附加功能.可能仍然可以创建自己的操作系统并加载操作系统,但如果您尝试发送结果,则会遇到问题.最好去bugreport.apple.com,让他们知道NsstatusItems应该是可拖动的.

Wikipedia has more info on Menu Extras,包括tutorial on building your own的一些链接.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...