使窗口的标题栏完全透明

Wes*_*ley 3 macos xcode cocoa swift

我正在使用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
Run Code Online (Sandbox Code Playgroud)

但我最终得到的是:

在此输入图像描述

似乎标题栏的透明度低于正常值,但我想它(以及应用程序标题)完全消失了.

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

谢谢.

Leo*_*bus 5

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

override func viewWillAppear() {
    super.viewWillAppear()

    // configure your window properties here
}
Run Code Online (Sandbox Code Playgroud)