OS X:捕获键盘输入而不用视觉获取焦点

OS X: Capture keyboard input without visually taking focus

我想开发一个运行在后台但可以显示一些 UI 的应用程序,在被询问时捕获键盘输入,例如 Spotlight。

当 Spotlight 处于活动状态时,它会获得键盘输入,但背景中的 window 仍然具有视觉焦点。 (后台应用程序中的任何插入点都会消失。)

我怎样才能自己制作这种效果?

window 必须…

  • NSPanel的子类
  • canBecomeKeyWindow 覆盖为 return true
  • 已使用包含 NSNonactivatingPanelMask 的样式掩码进行了初始化。

然后您可以使用 window.makeKeyAndOrderFront(nil) 将其置于最前面,即使您的应用程序未处于活动状态。