4

在我的应用程序中,有一个实用程序窗口(实际上它是一个 NSPanel 对象)。它有时会出现并出现在其他应用程序窗口的前面。

但是当其他应用程序以全屏模式运行时,实用程序窗口不会显示。但是我发现当全屏应用程序运行时,它会创建新的桌面。

(我猜这里的桌面是人们在其他问题中谈论的空间。)

当我在 Launchpad 中检查“任务控制”时,我看到实用程序窗口显示在原始桌面中,而全屏应用程序则显示在用户当前看到的新桌面中。

我阅读了文档,发现了一些类似的问题。看来我应该设置窗口的收集行为。所以我尝试了这个:

[self.window setCollectionBehavior:NSWindowCollectionBehaviorDefault | NSWindowCollectionBehaviorTransient | NSWindowCollectionBehaviorFullScreenAuxiliary];

它不起作用。

如何将我的窗口移动到全屏应用程序创建的当前桌面/空间?

4

1 回答 1

1

以下是我的测试代码,它工作正常,希望能有所帮助。

NSPanel *test_panel = [[NSPanel alloc] initWithContentRect:NSMakeRect(300, 300, 500, 500) styleMask:NSTitledWindowMask|NSClosableWindowMask backing:NSBackingStoreBuffered defer:YES];
        [test_panel setReleasedWhenClosed:YES];
        [test_panel setHidesOnDeactivate:NO];
        [test_panel setFloatingPanel:YES];
        [test_panel setStyleMask:NSClosableWindowMask|NSTitledWindowMask | NSNonactivatingPanelMask];
        [test_panel setLevel:kCGMainMenuWindowLevel-1];
        [test_panel setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces|NSWindowCollectionBehaviorFullScreenAuxiliary];
        [test_panel setCanBeVisibleOnAllSpaces:YES];
        [test_panel center];
        [test_panel orderFront:nil];
于 2016-04-13T06:49:17.183 回答