Mac OS X Lion:检测另一个应用程序是否以全屏模式运行?

Mar*_*ark 17 cocoa fullscreen nswindow osx-lion

在Cocoa应用程序中,有没有办法判断另一个应用程序当前是否处于全屏模式?

我的应用程序配置为显示在所有空间上并侦听mouseEntered事件以将自己命令到前端.

问题是当另一个应用程序处于全屏模式并且用户碰巧将鼠标移动到我的应用程序窗口所在的黑色区域时,它将被带到前面(多个监视器发生).

我只看到了上面[self setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces];启用的行为.

这是我的应用程序的其他相关代码.

- (void) mouseEntered:(NSEvent *)theEvent
{
    // Don't do this when another app is in full screen mode:
    [[self window] orderFront:self];
}
Run Code Online (Sandbox Code Playgroud)

and*_*otn 1

经过一番挫败之后,这对我来说是有效的,让我获得了一个浮动在除全屏空间之外的所有空间上的窗口。我看到了fullScreenNone常量名称,因为它描述了我想要的东西,所以我尝试了一下,发现它有效。

    window.level = .floating
    window.collectionBehavior = [.canJoinAllSpaces, .fullScreenNone]
    window.canHide = false
Run Code Online (Sandbox Code Playgroud)