NSTableRowView选择了行背景颜色

时间:2018-02-06 10:54:52

标签: swift nstableview nsprogressindicator

我有一个自定义表格行视图,可让我设置所选行的背景颜色:

import Cocoa

class MyRowView: NSTableRowView {

    override func drawSelection(in dirtyRect: NSRect) {
        NSColor.black.setFill()
        dirtyRect.fill()
    }
}

这适用于包含NSTextFields的任何列,我可以在故事板中将背景颜色设置为透明,但对于我有NSButton或NSProgessIndicator的列,这些对象的背景显示与unhighlighted相同行。您可以在下面的图像中看到未选择的行是充满活力的黑暗,显示窗口下方的内容。选定的行应为黑色,但复选框仍然具有鲜明的黑色外观。

enter image description here

我已设法为this answer按钮解决此问题,但这对进度指示器不起作用。我已经尝试了子类化NSProgressIndicator并只调用超类的init和draw方法,但它不起作用:

class MyProgInd: NSProgressIndicator {
    override func draw(_ dirtyRect: NSRect) {
        super.draw(dirtyRect)
    }

    required init?(coder decoder: NSCoder) {
        super.init(coder: decoder)
    }
}   

0 个答案:

没有答案