nsview - 带有自定义 View 的自定义 NSStatusItem - 使用 NSWindow、NSView、自定义 NSMenuItem?

标签 nsview nswindow nsmenu nsmenuitem nsstatusitem

我正在尝试创建一个 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/

相关文章:

objective-c - 创建 NSMenuItems 的动态计数

cocoa - 如何拥有具有动态操作的 NSMenu

cocoa - 从具有 View 的 xib 加载无边框窗口

macos - 如何呈现一个新的自定义 NSView(模态?)

objective-c - 将 NSView 添加到窗口而不是在顶部?

cocoa - 隐藏 NSWindow 新标签按钮

swift - 将 NSMenu 添加到右键单击弹出的 NSTableCellView

Objective-C:在 -(void)drawRect 中使用 "if else"语句来获取复选框状态?

objective-c - 'registerForDraggedTypes :' Audio Only

objective-c - NSWindow 标题栏右半部分不可拖动