NSTableView、高亮模式 "None" 和模糊背景

NSTablewView, Highlight Mode "None" and Blurred Background

我注意到,当我的基于视图的 NSTableView 在 Interface Builder 中将 highlight 属性设置为 "Source List" 时,它会呈现它的背景具有 振动效果 (即,它模糊了其父项 window 后面的内容)。

如果我改为将所述属性设置为 "None""Regular"(其他两个选项) ,background color 属性自动设置为白色,并且在运行时呈现 opaque(即使指定了 alpha 小于 1.0 的自定义颜色)。

我需要我的 table 单元格是非高光的table,但我真的很想要模糊效果。

此外,我不能通过 NSTableViewDelegate 方法禁止单元格突出显示:

func tableView(_ tableView: NSTableView, shouldSelectRow row: Int) -> Bool

...因为这会使我的单元格内的文本字段取消选择table,从而导致 uneditable.

我找到了 this question,它基本上要求 相反 解决方案(即,在设置高亮 "Source List" 时禁用振动),所以按照答案我在托管我的 table 视图的视图控制器上尝试了这段代码:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do view setup here.

    let appearance = NSAppearance(named: NSAppearanceNameVibrantLight)
    tableView.appearance = appearance
}

(外观被实例化并分两行分配以确认它在调试器上是非零的)

...但它并没有改变任何东西。

有什么简单的解决方法吗?

在 Interface Builder 中,我必须做三件事:

  1. 为包含 table 视图的 滚动视图 提供透明背景色。
  2. 取消选中滚动视图的 "Draw Background"。
  3. 给 table 视图一个透明的背景色。

…然后我能够看到我将 table 放在里面的 NSVisualEffectView