如何从纹理NSWindow中删除高光?

时间:2015-10-29 20:36:34

标签: swift macos

我的问题是:

我在故事板中有一个纹理化的NSWindow:

IB

但它在窗口的上边缘突出显示:

Highlight

我不喜欢窗户顶部边缘的那个亮点。如何删除此突出显示或至少用相同的背景颜色替换它?

注意:计算器的应用程序窗口没有突出显示(或者它非常微妙),而其他应用程序拥有它。看:

Calculator.app

我更喜欢获得与计算器应用相同的结果。

P.S。:我在我的ViewController中设置了窗口的背景颜色:

// BlueColor: NSColor
view.window?.backgroundColor = BlueColor

1 个答案:

答案 0 :(得分:2)

当您设置纹理化背景蒙版时,窗口的主题框架会突出显示高亮显示。 (您可以通过Xcode中的Visual View调试来研究这一点。)

要实现平面窗框(没有突出显示),您必须:

  • 关闭“纹理”标记
  • 设置NSFullSizeContentViewWindowMask样式掩码(下一步所需)
  • NSWindow's titlebarAppearsTransparent设为true

您可以将以下内容添加到设置窗口背景颜色的部分:

self.view.window?.backgroundColor = NSColor.blueColor()
self.view.window?.titlebarAppearsTransparent = true
let existingStyleMask = self.view.window!.styleMask
self.view.window?.styleMask = existingStyleMask|NSFullSizeContentViewWindowMask

这会给你一个平顶边框的窗口: enter image description here