2016-09-27 4 views
3

NSOutlineView의 특정 행에 대한 배경색을 어떻게 설정합니까? 나는 운없이이 시도 : 대신 필요한 것은NSOutlineView의 행의 배경색

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

답변

1

outlineView(didAdd:forRow)입니다. 대부분의 다른 outlineView 위임 방법과는 달리, outlineView(didAdd:forRow) 당신에게 대신 item의 행 인덱스를 제공한다는

func outlineView(_ outlineView: NSOutlineView, didAdd rowView: NSTableRowView, forRow row: Int) { 
    rowView.backgroundColor = .red 
} 

참고 : 다음 코드의 모습거야. 상품 번호는 outlineView.item(atRow: row)입니다.

코드가 작동하지 않는 이유는 어떤 스타일링이 적용되기 전에 outlineView(rowViewForItem:)NSTableRowView을 생성한다는 것입니다. 자신이 적용한 스타일은 outlineView 스타일을 적용하여 덮어 쓰게되었습니다. 이 메서드는 서브 클래스를 NSTableRowView에 사용하기위한의 것입니다.

+0

나를 위해 일했습니다. thx – JohnnyAW

관련 문제