我有一个自定义表格行视图,可让我设置所选行的背景颜色:
import Cocoa
class MyRowView: NSTableRowView {
override func drawSelection(in dirtyRect: NSRect) {
NSColor.black.setFill()
dirtyRect.fill()
}
}
这适用于包含NSTextFields的任何列,我可以在故事板中将背景颜色设置为透明,但对于我有NSButton或NSProgessIndicator的列,这些对象的背景显示与unhighlighted相同行。您可以在下面的图像中看到未选择的行是充满活力的黑暗,显示窗口下方的内容。选定的行应为黑色,但复选框仍然具有鲜明的黑色外观。
我已设法为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)
}
}