我对 mac osx 中 cocoa 的 NSStatusItem
有疑问。如果您查看名为 snippets 的 mac 应用程序(请参阅 http://snippetsapp.com/ 中的电影)。你会看到,一旦你点击你的状态栏图标,一个完美对齐的 View /面板甚至窗口就会出现在图标下方。
我的问题是......如何像这个应用程序一样计算放置 NSWindow
的位置?
我尝试了以下方法:
- 子类
NSMenu
- 设置菜单第一项的 View 窗口(有效但足够了)
- 使用 addSubview 而不是图标到
NSStatusItem
这有效但不能超过 20px
最佳答案
为 NSStatusItem 提供一个 View ,然后获取该 View 窗口的框架。这在技术上算作 UndocumentedGoodness,所以如果有一天它坏了(例如,如果他们开始将窗口保持在屏幕外),请不要感到惊讶。
我不知道你所说的“不能再高到 20 像素”是什么意思。
关于objective-c - 如何获取 NSStatusItem 的屏幕位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1301701/