swift - 如何从带纹理的 NSWindow 中删除高光?

标签 swift macos

这是我的问题:

我在 Storyboard中有一个带纹理的 NSWindow:

IB

但它在窗口的顶部边缘有突出显示:

Highlight

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

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

Calculator.app

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

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

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

最佳答案

当您设置带纹理的背景 mask 时,高光由窗口的主题框架绘制。 (您可以通过 Xcode 中的可视化 View 调试对此进行调查)。

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

  • 关闭“纹理化”标志
  • 设置NSFullSizeContentViewWindowMask 样式掩码(下一步需要)
  • NSWindow 的 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

关于swift - 如何从带纹理的 NSWindow 中删除高光?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33424126/

相关文章:

swift - 如何使用 Swift 中的 where 检查/将类转换为泛型类型

macos - 在 Mac 上,FSRead、FSWrite、SetFPos 等在哪里定义,我是否应该使用它们?

python - Mac上wx.TextCtrl中的Enter键没有效果

ios - NSFetchedResultsController XCode 7 问题

swift - 对图像进行着色,快速取错颜色

arrays - 在 Swift 的类中创建一个数组函数

ios - 使用 CKPartialErrorsByItemIDKey 恢复错误

c - 在 Mac OS X 上实现 faccessat(),如何根据给定的目录文件描述符和路径名构造新路径?

java - 如何将sublime设置为jshell的外部编辑器?

java - Mac OS X 10.9.4 上的小程序。卡在 CAccessible.selectionChanged()