2016-09-27 28 views
3

如何在NSOutlineView中設置1個特定行的背景顏色?我試過這個沒有運氣:在NSOutlineView中行的背景顏色

func outlineView(_ outlineView: NSOutlineView, rowViewForItem item: Any) -> NSTableRowView? { 
    let newRow = NSTableRowView() 
    newRow.backgroundColor = NSColor.red 
    return newRow 
} 

回答

1

你需要改爲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

+0

爲我工作,thx – JohnnyAW