2013-10-31 81 views
3

在我的應用程序中,有一個實用程序窗口(實際上它是一個NSPanel對象)。它會顯示一段時間,並在其他應用程序的窗口前。NSWindow/NSPanel無法顯示在全屏應用程序前

但是當其他應用程序以全屏模式運行時,實用程序窗口不顯示。但我發現當全屏應用程序運行時,它會創建新的桌面。

(我想這裏的桌面是人們在其他問題談的空間。)

當我在Launchpad中選中「任務控制中心」,我看到的是顯示在原來的桌面實用程序窗口,而全屏幕應用程序位於用戶當前所看到的新桌面中。

我讀了文檔,發現了一些類似的問題。好像我應該設置窗口的收集行爲。所以我試過這個:

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

它不起作用。

如何將窗口移動到全屏應用程序創建的當前桌面/空間?

回答

0

以下是我的測試代碼,它工作正常,希望可以幫助。

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]; 
相關問題