swiftUI:在AppDelegate中添加enterFullScreenMode将禁用退出全屏的任何方式



我在应用程序代理的applicationDidStart函数中尝试了以下块:

let mainScreen = NSScreen.screens[0]
window.contentView?.enterFullScreenMode(mainScreen, withOptions: nil)

这很好,但一旦应用程序启动并进入全屏模式,就没有办法摆脱它。按Escape键,强制退出,命令q,什么都不起作用。唯一的办法就是强制重启。在mac-os-big-sur中,强制重新启动将在全屏模式下再次打开应用程序。

这不是我想要的行为。我尝试使用解决方案添加onExitCommand{}块,以便从swiftUI视图中访问NSWindow实例(下面的链接(,但这会挂起应用程序。

如何在SwiftUI视图中访问自己的窗口?

我原以为这将是一个直截了当的解决方案,但它似乎比预期的更复杂。

有人有解决方案吗?

感谢

我遇到了同样的问题;使用toggleFullScreen方法对我有效。

NSApplication.shared.windows.first?.toggleFullScreen(nil)

最新更新