1

我正在制作一个展示视频和图像幻灯片的 Cocoa 应用程序。如果连接了多个屏幕(例如连接到 Mac Mini),我希望在每个屏幕上显示不同的内容。每个 NSWindow 在每个 NSScreen 上都应该是全屏的。

在 OSX 10.8 上开发时,我使用 NSBorderlessWindowMask 将每个 NSWindow 框架设置为 NSScreen 框架。我没有在 NSApplication 上明确使用 NSApplicationPresentationFullScreen,我使用了 NSApplicationPresentationHideDock 和 NSApplicationPresentationAutoHideMenuBar。

这种方法似乎存在一些问题。一些 OSX 事件似乎迫使菜单栏进入视图并永久向下移动窗口。

既然 OSX Mavericks 更新了全屏支持,有没有更好的方法呢?我可以在真正的全屏模式下打开一个 NSApplication 并为每个 NSScreen 强制一个单独的 NSWindow 吗?

谢谢你。

4

1 回答 1

3

您可以为每个屏幕实例化一个NSWindow并将它们切换到全屏:

[self.windowA setFrame:[[[NSScreen screens] firstObject] visibleFrame] display:NO];
[self.windowB setFrame:[[[NSScreen screens] lastObject] visibleFrame] display:NO];
[self.windowA toggleFullScreen:nil];
[self.windowB toggleFullScreen:nil];
于 2014-02-26T12:50:04.230 回答