我正在尝试创建一个 LSUIElement 应用程序,其行为类似于 Spotlight、CoverSutra 和其他该类型的应用程序。我设法创建一个自定义 NSStatusItem,它会弹出一个 NSWindow,但问题是当前具有焦点的应用程序会将焦点转移到我的自定义 NSWindow。
我以 Matt Gemmell 的示例为基础 ( http://mattgemmell.com/2008/03/04/using-maattachedwindow-with-an-nsstatusitem )
例如,如果您在 Safari 中单击 Spotlight 图标,则当前 Safari 窗口不会变灰并保持焦点。当您在 Spotlight 中按 ESC 时,焦点将返回到 Safari 窗口。
我还没有成功地用我的自定义 NSWindow 做到这一点。我必须单击返回窗 Eloquent 能将焦点重新设置到该窗口。
所以我想知道要走哪条路才能实现这一目标。解决方案是带有自定义 NSMenuItem 的 NSWindow、NSPanel、NSMenu 吗?
最佳答案
使用 NSPanel 和 NSNonactivatingPanelMask 作为 styleMask 或在 IB 中勾选该选项。
关于nsview - 带有自定义 View 的自定义 NSStatusItem - 使用 NSWindow、NSView、自定义 NSMenuItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1705599/