OS X:捕获键盘输入而不用视觉获取焦点
OS X: Capture keyboard input without visually taking focus
我想开发一个运行在后台但可以显示一些 UI 的应用程序,在被询问时捕获键盘输入,例如 Spotlight。
当 Spotlight 处于活动状态时,它会获得键盘输入,但背景中的 window 仍然具有视觉焦点。 (后台应用程序中的任何插入点都会消失。)
我怎样才能自己制作这种效果?
window 必须…
- 是
NSPanel
的子类
- 将
canBecomeKeyWindow
覆盖为 return true
和
- 已使用包含
NSNonactivatingPanelMask
的样式掩码进行了初始化。
然后您可以使用 window.makeKeyAndOrderFront(nil)
将其置于最前面,即使您的应用程序未处于活动状态。
我想开发一个运行在后台但可以显示一些 UI 的应用程序,在被询问时捕获键盘输入,例如 Spotlight。
当 Spotlight 处于活动状态时,它会获得键盘输入,但背景中的 window 仍然具有视觉焦点。 (后台应用程序中的任何插入点都会消失。)
我怎样才能自己制作这种效果?
window 必须…
- 是
NSPanel
的子类 - 将
canBecomeKeyWindow
覆盖为 returntrue
和 - 已使用包含
NSNonactivatingPanelMask
的样式掩码进行了初始化。
然后您可以使用 window.makeKeyAndOrderFront(nil)
将其置于最前面,即使您的应用程序未处于活动状态。