在NSStatusBar中自动显示NSPopover

时间:2015-01-29 07:03:57

标签: objective-c macos nspopover

我试图让NSPopover自动显示在状态栏中的图标下方,这是用户第一次安装我的应用程序。像谷歌驱动器一样:

enter image description here

我使用的是code提到的this answer,它非常适合手动显示弹出框(例如用户点击)。为了让popover自动显示,我在applicationDidFinishLaunching方法的末尾添加了以下行:[self.controller menuletClicked:1]调用showRelativeToRect...现在,这有时完美无缺(弹出窗口出现在状态栏中的图标),但有时弹出窗口会显示在屏幕的左下方。如果我等待几秒然后执行该行代码(例如通过dispatch_after...),它的工作更加一致。但仍然偶尔失败并显示在我的屏幕底部。

这表明某些东西没有“准备好”? (正如在这个question中所建议的那样) - 但是我检查了popover对象不是nil,并且矩形的边界看起来很好。我还添加了一个loadView来尝试强制加载,但似乎没有任何效果!

让NSPopover自动显示的正确方法是什么?或者如何确保它出现在正确的位置?谢谢!

0 个答案:

没有答案