MAC OS Xcode Swift 2.2 全屏模式
Posted
技术标签:
【中文标题】MAC OS Xcode Swift 2.2 全屏模式【英文标题】:MAC OS Xcode Swift 2.2 Fullscreen Mode 【发布时间】:2016-07-02 21:53:49 【问题描述】:什么 Swift 代码会将应用切换到全屏? 我找到了 ios 示例代码的参考资料。 我正在寻找适用于 MacOS 应用程序的代码。
【问题讨论】:
【参考方案1】:为 Swift 4 更新
override func viewDidAppear()
let presOptions: NSApplication.PresentationOptions = [.fullScreen, .autoHideMenuBar]
let optionsDictionary = [NSView.FullScreenModeOptionKey.fullScreenModeApplicationPresentationOptions: presOptions]
view.enterFullScreenMode(NSScreen.main!, withOptions: optionsDictionary)
view.wantsLayer = true
【讨论】:
这很好地打开了全屏模式,但我注意到当我将标签放入视图时,标签不会出现。与按钮相同。为什么? 显示黑色窗口的同样问题。有什么解决办法吗?【参考方案2】:一种方法是在NSViewController
中覆盖viewDidAppear
:
class ViewController : NSViewController
override func viewDidAppear()
let presOptions: NSApplicationPresentationOptions = ([.FullScreen,.AutoHideMenuBar])
let optionsDictionary = [NSFullScreenModeApplicationPresentationOptions :
NSNumber(unsignedLong: presOptions.rawValue)]
self.view.enterFullScreenMode(NSScreen.mainScreen()!, withOptions:optionsDictionary)
self.view.wantsLayer = true
↳Apple Developer API Reference : viewDidAppear()
【讨论】:
【参考方案3】:如果您想要不同的行为,另一种选择是,当您将鼠标移到顶部时菜单栏可用。但是,它开始时是正常大小的窗口,然后会增长,因此根据您的操作,这可能是不可取的。
override func viewDidAppear()
view.window?.toggleFullScreen(self)
【讨论】:
那是更好的答案,因为在接受的全屏应用程序中,全屏应用程序会锁定 MacOS 中的所有内容,您无法调整窗口大小,没有出现菜单栏,甚至 Command + Tab 键也不会工作!如果您更改系统音量,该指示器也不会显示! 如何退出全屏?在视图中有一个按钮以上是关于MAC OS Xcode Swift 2.2 全屏模式的主要内容,如果未能解决你的问题,请参考以下文章
C ++ glfw3:全屏模式下的一个(两个)窗口不是真正的全屏(Mac Os)
Mac OS X Big Sur 上 webstart 的 JDialog 全屏问题
Swift 3、iOS 10+、xCode 8.3+、Quickblox - 在保持纵横比/视频分辨率的同时切换全屏远程流