我的菜单栏应用程序如何实现与1Password或Dropbox相同的行为:


点击其菜单栏图标或弹出菜单不会夺走焦点,例如例如,当我处于TextEdit并打开1Password / Dropbox时,闪烁的光标消失了,但窗口本身没有进入背景,但是我可以在1Password的文本字段中键入内容。
即使他们一开始没有关注,但当我再次单击另一个应用程序时,它们便消失了


通过使用带有选项MouseEnteredAndExited,AssumeInside和ActiveAlways的NSTrackingArea,我了解了鼠标悬停在Dropbox弹出表视图中的工作方式。

我试图让相同的行为在从NSStatusItem打开的NSPopover中工作。

最佳答案

我现在找到了解决方法。我可以通过使用窗口级别为kCGPopUpMenuWindowLevelKey的非激活NSPanel来获得相同的行为,并且我必须重写canBecomeKeyWindow以返回true。

不幸的是,由于它不是NSWindow的子类,所以我还没有找到一种使NSPopover表现出这种方式的方法。

10-05 21:40