NSOutlineView选定的文本颜色在Swift中不起作用

NSOutlineView选定的文本颜色在Swift中不起作用,nsoutlineview,nstablecellview,Nsoutlineview,Nstablecellview,Swift 4,macOS 10.13 我有一个NSOutlineView,我试图在用户单击每一行时自定义它的外观 我有一个用于单元格的基于视图的NSTableCellView子类。当我覆盖backgroundStyle时,图标更改工作正常。但是文本颜色有点奇怪 这里有一个视频演示: 这是我的密码: class MenuItemCell: NSTableCellView{ @IBOutlet weak var label: NSTextField! @IBOutlet weak var

Swift 4,macOS 10.13

我有一个
NSOutlineView
,我试图在用户单击每一行时自定义它的外观

我有一个用于单元格的基于视图的
NSTableCellView
子类。当我覆盖
backgroundStyle
时,图标更改工作正常。但是文本颜色有点奇怪

这里有一个视频演示:

这是我的密码:

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 }
  }
}

知道怎么了吗?我已经搜索了好几个小时,无法找到它。

结果是,当脚本编辑器中的
NSOutlineView
高亮显示设置为源列表时,这将永远无法可靠地工作。这真的不可靠

一旦我把它改成常规的,它就工作得很好了


事实证明,如果在情节提要编辑器中将
NSOutlineView
高亮显示设置为源列表,此操作将永远无法可靠工作。这真的不可靠

一旦我把它改成常规的,它就工作得很好了


您在哪里将self.backgroundStyle设置为深色?下一次你要它的时候,你会用get返回super.backgroundStyle。你在哪里将self.backgroundStyle设置为深色?下一次你要它的时候,你会用get返回super.backgroundStyle。