【发布时间】:2020-03-07 14:25:52
【问题描述】:
我正在尝试制作一个在第二台显示器上启动、播放视频然后退出的全屏视频播放器。
我真的不明白为什么这这么难,但我几乎尝试了所有我能想到的东西,包括我在 SO 上的任何答案中找到的与移动窗口或使其全屏有关的所有内容。
1) 将窗口框架设置为第二个屏幕的框架并不能可靠地移动它。
例如
if let screen = NSScreen.screens()?[1] {
let frame = screen.frame
window.setFrame(frame, display: true, animate: true)
}
可能会也可能不会将窗口移动到第二个屏幕。如果我设置 animate: false,它永远不会。
2) 执行 self.view.enterFullScreenMode(secondScreen, withOptions: options) 不起作用我最终在主屏幕上出现了一个奇怪的浮动窗口。如果我确实在主屏幕上进入 fullScreenMode,它将完美地全屏。
if let screen = NSScreen.screens()?[1] {
let presOptions:NSApplicationPresentationOptions = [
.fullScreen,
.hideDock,
.hideMenuBar,
.autoHideToolbar
]
self.view.enterFullScreenMode(screen, withOptions: [NSFullScreenModeApplicationPresentationOptions: presOptions,
NSFullScreenModeAllScreens: false])
}
有人知道我到底做错了什么吗?
我还在 applicationDidFinishLaunching 中尝试了 window.toggleFullScreen(nil) - 这似乎可以在我的一台计算机上运行,但在另一台计算机上它在另一个空间中运行应用程序,但从未将该空间设置为可见。
【问题讨论】:
-
你是如何创建你的窗口的?它是否设置了“全屏”标志?是否设置为无边界?你给它的窗位是多少?是否设置为可调整大小?
标签: objective-c macos cocoa swift3 fullscreen