如何在NSOutlineView中设置1个特定行的背景颜色?我没有运气试过这个:
func outlineView(_ outlineView: NSOutlineView, rowViewForItem item: Any) -> NSTableRowView? {
let newRow = NSTableRowView()
newRow.backgroundColor = NSColor.red
return newRow
}
答案 0 :(得分:2)
您需要的是outlineView(didAdd:forRow)
。这是您的代码的样子:
func outlineView(_ outlineView: NSOutlineView, didAdd rowView: NSTableRowView, forRow row: Int) {
rowView.backgroundColor = .red
}
请注意,与大多数其他outlineView
委托方法不同,outlineView(didAdd:forRow)
为您提供行索引而不是item
。您可以致电outlineView.item(atRow: row)
来获取该项目。
您的代码无效的原因是outlineView(rowViewForItem:)
在应用任何样式之前创建NSTableRowView
。你应用的样式被覆盖outlineView
应用自己的样式。该方法旨在用于子类化NSTableRowView
。