gpt4 book ai didi

cocoa - NSWindow/NSPanel 无法在全屏应用程序前面显示

转载 作者:行者123 更新时间:2023-12-03 16:15:21 32 4
gpt4 key购买 nike

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

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

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

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

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

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

这不起作用。

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

最佳答案

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

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];

关于cocoa - NSWindow/NSPanel 无法在全屏应用程序前面显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19697826/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com