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 全屏模式的主要内容,如果未能解决你的问题,请参考以下文章

PySide 全屏 Mac os x 小部件

C ++ glfw3:全屏模式下的一个(两个)窗口不是真正的全屏(Mac Os)

Mac OS X Big Sur 上 webstart 的 JDialog 全屏问题

Swift 3、iOS 10+、xCode 8.3+、Quickblox - 在保持纵横比/视频分辨率的同时切换全屏远程流

在 Mac OS X 中最大化或全屏显示窗口后,Java 停止捕获鼠标移动事件

解决VMware虚拟机安装 Mac os,安装VMware tools不成功或无法全屏的问题