Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos NSTablewView,高亮显示模式“;无”;模糊的背景_Macos_Nstableview_Nsvisualeffectview - Fatal编程技术网

Macos NSTablewView,高亮显示模式“;无”;模糊的背景

Macos NSTablewView,高亮显示模式“;无”;模糊的背景,macos,nstableview,nsvisualeffectview,Macos,Nstableview,Nsvisualeffectview,我注意到,当基于视图的NSTableView在Interface Builder中将highlight属性设置为“源列表”时,它会使用振动效果来渲染背景(即,它会模糊其父窗口后面的内容) 相反,如果您将所述属性设置为“无”或“常规”(其他两个选项),则背景色属性将自动设置为白色,并且在运行时其渲染的不透明(即使指定了alpha小于1.0的自定义颜色) 我需要我的表格单元格不可高亮显示,但我真的很喜欢模糊效果 此外,我无法通过NSTableViewDelegate方法禁止单元格高亮显示: func

我注意到,当基于视图的
NSTableView
在Interface Builder中将
highlight
属性设置为“源列表”时,它会使用振动效果来渲染背景(即,它会模糊其父窗口后面的内容)

相反,如果您将所述属性设置为“无”“常规”(其他两个选项),则
背景色
属性将自动设置为白色,并且在运行时其渲染的不透明(即使指定了alpha小于1.0的自定义颜色)

我需要我的表格单元格不可高亮显示,但我真的很喜欢模糊效果

此外,我无法通过NSTableViewDelegate方法禁止单元格高亮显示:

func tableView(_ tableView: NSTableView, shouldSelectRow row: Int) -> Bool
…因为这使我的单元格中的文本字段不可选择,因此不可编辑

我发现,这基本上要求相反的解决方案(即,当突出显示设置为“源列表”时禁用vibrance),因此根据那里的答案,我在承载我的表视图的视图控制器上尝试了以下代码:

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

    let appearance = NSAppearance(named: NSAppearanceNameVibrantLight)
    tableView.appearance = appearance
}
(在两行中实例化并分配外观,以确认调试器上的外观为非nil)

…但这不会改变任何事情


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

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

  • 为包含表格视图的滚动视图提供透明背景色
  • 取消选中滚动视图的“绘制背景”
  • 为表视图提供透明的背景色
  • …然后我可以看到我放在表中的
    NSVisualEffectView