2011-05-17 42 views
3

是否有可能爲在全屏模式下運行的Cocoa應用程序添加HUD覆蓋圖?
我按如下方式切換到全屏模式。如何在全屏模式下創建HUD覆蓋圖?

// An NSView. 
[self enterFullScreenMode:m_screen withOptions:nil]; 

的HUD覆蓋是NSPanel類型和上述視圖的部件構成。要顯示HUD面板,我運行以下幾行代碼。

​​

雖然面板在我離開全屏模式之前不會出現。

回答

2

您必須增加窗口級別。我不知道-enterFullScreenMode:withOptions - 但與CoreGraphics中全屏API,我們就是這麼做的:

int level = CGShieldingWindowLevel(); 
[m_hudPanel setLevel:level]; 

或者,也許你不得不使用level + 1,我忘記了。要點是,窗口首先按級組織,然後在每個級別內組織。當你把窗戶移到前面時,它只會移動到它的前面。這樣,背景,菜單欄,停靠欄和屏幕保護程序就會保持在它們應有的位置(它們只是特殊類型的窗口)。