使窗口标题栏完全透明化

4

我正在使用Swift 3开发MacOS应用程序,希望使标题栏透明,不显示应用程序的标题,基本上只显示背景上的三个按钮(关闭、最小化、全屏)。

我尝试在第一个视图控制器的viewDidLoad方法中添加以下内容:

self.view.window?.styleMask.insert(NSWindowStyleMask.unifiedTitleAndToolbar)
self.view.window?.styleMask.insert(NSWindowStyleMask.fullSizeContentView)
self.view.window?.styleMask.insert(NSWindowStyleMask.titled)
self.view.window?.toolbar?.isVisible = false
self.view.window?.titleVisibility = .hidden
self.view.window?.titlebarAppearsTransparent = true

但是我最终得到的是这样的: enter image description here 看起来标题栏的透明度比正常情况下低,但我想让它(以及应用程序标题)完全消失。
我有遗漏什么吗,还是这是不可能的?
谢谢。

https://github.com/lukakerr/NSWindowStyles - Luka Kerr
1个回答

7
问题在于,在viewDidLoad方法中,window属性始终为空。你代码中的所有可选链都会悄无声息地失败。你只需要将代码移到viewWillAppear方法中即可解决问题。
override func viewWillAppear() {
    super.viewWillAppear()

    // configure your window properties here
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接