2017-10-20 47 views
1

斯威夫特4不工作,MACOS 10.13NSOutlineView選定的文本顏色的雨燕

我有一個NSOutlineView和我想要當用戶點擊它來定製每一行的外觀。

我有一個基於視圖的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暗?下一次你要求它,你返回super.backgroundStyle get。 – Dis3buted

回答

0

事實證明,雖然NSOutlineView突出在故事板編輯器設置爲源列表這絕不會可靠地工作。這真的不可靠。

一旦我將其更改爲經常然後它工作正常。

enter image description here enter image description here