NSPanel窗口将焦点更改为桌面,而不是当前的全屏应用程序

时间:2019-05-11 02:05:23

标签: objective-c macos cocoa fullscreen nspanel

我正在macOS上写一个提示窗口。 我希望窗口可以浮动在任何应用程序的上方,即使它们处于全屏模式。

我有一个NSPanel对象,它的初始化方式如下: styleMask:NSWindowStyleMaskBorderless | NSWindowStyleMaskNonactivatingPanel

然后我修改collectionBehavior,使其能够显示在全屏应用程序的顶部。 collectionBehavior = NSWindowCollectionBehaviorFullScreenAuxiliary

当我连接了外接显示器时,所有这些在每个屏幕上都可以正常工作。 该窗口显示在当前聚焦全屏应用程序的顶部。

当我仅使用内置屏幕而未连接任何外部监视器时, 该窗口仍显示在当前聚焦全屏应用程序的顶部。 但是,显示后,它将把焦点转移到桌面上。 如果您有多个虚拟桌面,则只有Desktop1。

如何仅在内置屏幕上提示不将焦点转移到桌面上?与连接的外部屏幕具有相同的行为。

0 个答案:

没有答案