使窗口的标题栏完全透明

时间:2017-05-05 12:43:26

标签: swift xcode macos cocoa

我正在使用Swift 3中的macos应用程序,我想让标题栏透明,而不是显示我的应用程序的标题,所以基本上只有3个按钮(关闭,在我的背景上缩小,全屏。

我尝试将以下内容放在正在使用的第一个视图控制器的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

似乎标题栏的不透明度低于正常值,但我喜欢它(以及应用标题)完全消失了。

我错过了什么或这是不可能的?

感谢。

1 个答案:

答案 0 :(得分:5)

问题是在viewDidLoad方法里面,window属性总是为nil。代码中的所有可选链接都会无声地失败。您只需将代码移动到viewWillAppear方法。

override func viewWillAppear() {
    super.viewWillAppear()

    // configure your window properties here
}