【问题标题】:NSWindow / NSPanel can't show in front of full-screen applicationNSWindow / NSPanel 无法在全屏应用前显示
【发布时间】:2013-11-10 22:42:00
【问题描述】:

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

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

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

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

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

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

它不起作用。

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

【问题讨论】:

    标签: cocoa fullscreen nswindow nspanel


    【解决方案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];
    

    【讨论】:

      猜你喜欢
      • 2011-05-22
      • 2016-07-12
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多