如何检测NSStatusItem是否显示在状态栏中?

时间:2011-07-29 03:26:33

标签: objective-c cocoa macos nsstatusitem

我的Mac OS X应用程序有一个NSStatusItem。

它工作正常但是,我刚刚发现,如果顶部菜单/状态栏中有太多项目(例如,如果应用程序有长菜单,有太多图标等),我的状态项目被系统隐藏。

如何在我的应用程序中检测到这一点,以便我可以对此做些什么?

由于

2 个答案:

答案 0 :(得分:0)

在2011年7月26日版的Mac OS X人机界面指南(其中状态项称为“菜单栏附加内容”)的第18页上,声明:

  

注意:如果没有足够的空间显示所有活动应用程序   菜单,Mac OS X可以省略一些菜单栏附加功能。如果还有   没有足够的空间显示所有菜单,一些应用程序的菜单可能是   省略,从最右边的菜单开始。

所以回答你的问题,“(我可以)做些什么吗?”答案是:不。你必须将菜单栏视为额外的“额外”,这是一个额外的便利。如果您真的想要使用此UI元素,则可以通过提供一个不包含对用户控制应用程序至关重要的命令的元素来实现。相反,您应该提供可以从应用程序的其他位置访问的那些。

答案 1 :(得分:0)

这个问题几乎与this重复。虽然需要比预期更多的工作,但链接中描述了一个非常不真实的解决方案来解决您的问题。