5

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

  • 单击他们的菜单栏图标或弹出框不会窃取焦点,例如,当我在 TextEdit 中并打开 1Password/Dropbox 时,闪烁的光标会消失,但窗口本身不会进入背景,但我可以在 1Password 的文本字段中输入。
  • 即使它们一开始并没有集中注意力,当我单击返回另一个应用程序时它们也会消失

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

我试图在从 NSStatusItem 打开的 NSPopover 中获得相同的行为。

4

2 回答 2

2

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

不幸的是,我还没有找到让 NSPopover 以这种方式运行的方法,因为它不是 NSWindow 的子类。

于 2014-10-16T19:03:40.607 回答
1

要设置您所描述的行为类型,请使用:

yourPopover.behavior = .transient

于 2018-02-03T00:32:17.147 回答