OS X中的全屏应用程序有多个窗口?

时间:2012-02-26 00:42:16

标签: objective-c cocoa fullscreen nswindow nsapplication

我想制作一个全屏应用,除了具有正常的窗口行为外,还显示新空间的背景。基本上,当用户全屏显示时,我希望应用中的每个NSWindow保持相同的大小,保持在屏幕的相同位置,但移动到新的空间。这可能吗?如果是这样,那种行为的文件在哪里?

编辑:我知道现在已经很老了,但我刚刚发现了customWindowsToEnterFullScreenForWindow。我用它来解决问题。代码如下,只是其他任何人都有兴趣这样做。

- (NSArray*) customWindowsToEnterFullScreenForWindow:(NSWindow*)window {
    if ([window isEqualTo:self.window]) {
        return [NSArray arrayWithObjects:window, otherwindow, nil];
    }

    return nil;
}

- (NSArray*) customWindowsToExitFullScreenForWindow:(NSWindow*)window {
    if ([window isEqualTo:self.window]) {
        return [NSArray arrayWithObjects:window, otherwindow, nil];
    }

    return nil;
}

这些是NSWindowDelegate方法,所以一定要设置窗口的委托。否则,可能会引起一些混乱。

1 个答案:

答案 0 :(得分:2)

一个应用程序一次只能在一个空间上。这是一个很难的限制。如果您希望能够在全屏幕上管理多个空间的多个窗口,则应该提交错误。