与默认的 Mac APP 标题栏相比,类似 Mac 原生应用 Reminder 的标题栏具有更好的显示效果,标题栏和下方的 Content View 有效融合,整体风格能够保持一致。而要实现这种风格,我们只需要对当前NSWindow 做如下处理:

self.titlebarAppearsTransparent = true

对于这个属性,Apple官方文档里是这样解释的:

When the value of this property is true, the title bar does not draw its background, which allows all content underneath it to show through. It only makes sense to set this property to true when NSFullSizeContentViewWindowMask is also set.

titlebarAppearsTransparent 设为 true 的时候,title bar 将不会绘制其背景,换而言之,title bar 将会变成透明的,使其完全和下面的 View 融为一体。

与此同时,Apple 还提到,将这个属性设置为 true 的同时,我们还需要设置 Window
NSFullSizeContentViewWindowMask,如以下代码所示:

self.styleMask = [.fullSizeContentView]

本文涉及的完整代码如下:


class MainWindow: NSWindow {

    override func awakeFromNib() {

    super.awakeFromNib()

    self.title = "Star Order"
    self.styleMask = [.fullSizeContentView, .titled, .miniaturizable, .resizable, .closable]
    self.titlebarAppearsTransparent = true

    Utils.positionWindowAtCenter(sender: self)
    }
}