2017-10-20 20 views
1

스위프트 4NSOutlineView을 선택한 경우 텍스트 색은 내가 <code>NSOutlineView</code>이, 스위프트

맥 OS 10.13 작동하지 나는 사용자가 클릭 할 때 각 행의 모양을 사용자 정의하기 위해 노력하고있어.

저는 셀에 대해 사용하는 뷰 기반 NSTableCellView 하위 클래스가 있습니다. backgroundStyle을 무시하면 아이콘 변경이 완벽하게 작동합니다.. 하지만 텍스트 색상이 이상한 일을하고 있습니다.

여기가 비디오를 보여입니다 :http://d.pr/v/suTD8B

여기 내 코드입니다 : 뭐가 잘못

class MenuItemCell: NSTableCellView{ 
    @IBOutlet weak var label: NSTextField! 
    @IBOutlet weak var icon: NSImageView! 

    //Customizes the selected state of menu row 
    override var backgroundStyle: NSView.BackgroundStyle { 
    set{ 
     if let rowView = self.superview as? NSTableRowView { 
     super.backgroundStyle = rowView.isSelected ? .dark : .light 
     } 
     if self.backgroundStyle == .dark { 
     label.textColor = NSColor.white 
     icon.image = NSImage(named: NSImage.Name(rawValue: "menu-project-selected")) 
     }else{ 
     label.textColor = NSColor.menuTextColor 
     icon.image = NSImage(named: NSImage.Name(rawValue: "menu-project")) 
     } 
    } 
    get{ return super.backgroundStyle } 
    } 
} 

어떤 생각이? 나는 몇 시간 동안 수색을 해왔고 알아낼 수 없다.

+0

는 어디 어둠에 self.backgroundStyle을 설정합니까? 다음에 요청할 때 get을 사용하여 super.backgroundStyle을 반환합니다. – Dis3buted

답변

0

그것은 NSOutlineView강조가 스토리 보드 편집기에서 소스 목록로 설정하는 동안이 안정적으로 작동하지 않을 것이라고 밝혀졌습니다. 그것은 정말로 신뢰할 수 없었습니다.

일단 내가 으로 변경하면 일반으로 바뀌 었습니다.

enter image description here enter image description here