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