我正在使用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
但我最终得到的是:
似乎标题栏的不透明度低于正常值,但我喜欢它(以及应用标题)完全消失了。我错过了什么或这是不可能的?
感谢。
答案 0 :(得分:5)
问题是在viewDidLoad方法里面,window属性总是为nil。代码中的所有可选链接都会无声地失败。您只需将代码移动到viewWillAppear方法。
override func viewWillAppear() {
super.viewWillAppear()
// configure your window properties here
}