可可 - 将窗口调整为全屏。双显示屏

时间:2015-01-30 11:55:23

标签: objective-c cocoa fullscreen osx-yosemite

我尝试调整大小窗口以进行两次显示。

优胜美地在很大程度上取决于[NSScreen screensHaveSeparateSpaces] - "显示器有独立的空间"设置。

如果screensHaveSeparateSpaces设置为NO,我可以将NSWindow的大小调整为所有屏幕,并设置[window setLevel:CGShieldingWindowLevel()],这样就可以了。

但如果screensHaveSeparateSpaces设置为YES,我只会看到窗口的一半。我正在尝试:

NSDictionary *opts = [NSDictionary dictionaryWithObjectsAndKeys:
      [NSNumber numberWithBool:YES], NSFullScreenModeAllScreens,
       nil];

NSView *view = [window contentView];
[view enterFullScreenMode:[NSScreen mainScreen] withOptions:opts];

NSRect frame = [view.window frame];
frame.size.width *= 2;
[view.window setContentSize:frame.size];

NSView调整到所有屏幕,这是真的,但NSView填充我的左手主显示屏 - 辅助(右手)显示屏保持黑色。

如果NSView正在返回screensHaveSeparateSpaces,如何将YES调整为全屏(双屏显示)?

1 个答案:

答案 0 :(得分:0)

你做不到。窗口仅存在于一个空间中。如果每个屏幕都有一个单独的空间,那么两个屏幕上都不能有一个窗口。你最好的选择是尝试通过两个窗口来伪造它,每个空间一个,但我甚至不确定是否可能。假设你甚至可以在多个空间中安装一个带有窗口的应用程序,那么尝试让两个窗口保持同步是非常重要的。