如何设置Cocoa应用程序标题栏的样式?

时间:2016-11-24 23:34:21

标签: swift cocoa

如何设置Cocoa应用程序的标题栏,就像Twitter.app的方式一样?例如:

enter image description here

1 个答案:

答案 0 :(得分:0)

对于透明的标题栏:
有多种方法可以实现这一目标。

  1. 方法(最简单): 将窗口设置为纹理window。当titleBar消失时,它将获得灰色渐变作为背景。 然后,您可以将backgroundColor(例如从windowContoller)设置为您喜欢的颜色。

    self.window?.backgroundColor = NSColor.darkGray
    
  2. 方法(更灵活): 您可能希望获得更多灵活性。要完全复制Twitters设计,第一种方法是行不通的。 通过调用

    使标题栏透明
    self.window?.titlebarAppearsTransparent = true
    

    然后,您必须将窗口设置为具有完整大小的内容视图。这使窗口的contentView直接从窗口frame(0,0)开始。您必须注意这一点,因为您的观点可能会显示在titleBar下方。将window.contentLayoutGuide.topAnchor设置为Windows内容与视图顶部之间的最小间距。 您可以从今年Crafting Modern Cocoa Apps WWDC会议中获得有关此内容的更多信息。

  3. 对于输入的更多按钮:
    所以现在你有一个透明的标题栏。要获得按钮效果,您需要在窗口中添加工具栏。因为你不想在那里有任何物品,你可以将它们全部删除。 在代码中,您只需要设置

    self.window?.titleVisibility = .hidden
    

    按钮将与不可见的工具栏对齐。您可以通过禁用工具栏的分隔符来使外观完美。