我正在制作一个Cocoa应用程序,它可以显示视频和图像的幻灯片。如果连接了多个屏幕(例如Mac Mini),我希望在每个屏幕上显示不同的内容。每个NSWindow都应该在每个NSScreen上全屏显示。
在OSX 10.8上开发时,我使用NSBorderlessWindowMask将每个NSWindow帧设置为NSScreen帧。我没有在NSApplication上明确使用NSApplicationPresentationFullScreen,我使用了NSApplicationPresentationHideDock和NSApplicationPresentationAutoHideMenuBar。
这种方法似乎存在一些问题。一些OSX事件似乎迫使菜单栏进入视图并永久地移动窗口。
OSX Mavericks现在是否有更好的方法来更新全屏支持?我可以在真正的全屏模式下打开NSApplication并为每个NSScreen强制使用单独的NSWindow吗?
谢谢。
答案 0 :(得分: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];