2011-05-17 59 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,我忘记了。要点是,窗口首先按级组织,然后在每个级别内组织。当你把窗户移到前面时,它只会移动到它的前面。这样,背景,菜单栏,停靠栏和屏幕保护程序就会保持在它们应有的位置(它们只是特殊类型的窗口)。