NSStatusItem可以缩小以适应吗?

all*_*tom 18 macos cocoa nsstatusitem

我有一个可变长度NSStatusItem,我希望尽可能保持可见,即使这意味着只显示一些内容,但当我的项目足够大以进入应用程序的菜单栏时,它完全隐藏.有没有办法告诉何时发生这种情况,以便我可以缩小视图以适应可用空间?

我已经尝试了自定义视图,覆盖了所有viewWill*方法,框架设置器和显示方法,并定期检查包含窗口是否已移动或隐藏.当我的物品太长时,我找不到任何方法来判断.

hol*_*ow7 1

这取决于您的状态项应用程序是否可以检测 OS X 菜单栏中的菜单项数量。快速搜索苹果文档表明,苹果没有为此目的提供公共 API。据我所知,也没有私人的。

因此,我建议您默认将状态项设置为较小,并在用户单击时将其展开。

编辑: 实际上看看这里的讨论:一种非常聪明的方法来检测您的状态项是否被隐藏。因此,一旦您发现它被隐藏,您可以缩小它以使其重新出现。