Was Sie stattdessen brauchen, ist outlineView(didAdd:forRow)
. Hier ist, was Ihr Code aussehen würde:
func outlineView(_ outlineView: NSOutlineView, didAdd rowView: NSTableRowView, forRow row: Int) {
rowView.backgroundColor = .red
}
Beachten Sie, dass im Gegensatz zu den meisten anderen outlineView
Delegatmethoden, outlineView(didAdd:forRow)
gibt Ihnen einen Zeilenindex anstelle eines item
. Sie können den Artikel erhalten, indem Sie outlineView.item(atRow: row)
anrufen.
Der Grund, warum Ihr Code nicht funktionierte, ist, dass outlineView(rowViewForItem:)
die NSTableRowView
erstellt, bevor ein Styling angewendet wird. Das Styling, das Sie dort appliziert haben, wurde überschrieben outlineView
mit einem eigenen Styling. Das Verfahren soll für Unterklassen NSTableRowView
verwendet werden.
arbeitete für mich, thx – JohnnyAW