我有基于视图的NSTableView,有2个文本列。
第一列使用自定义 NSTextFieldCell。第二列使用默认单元格。
以下是自定义单元格代码:
class CustomTextFieldCell: NSTextFieldCell {
// don't do anything, just call the super implementation
override func drawInterior(withFrame cellFrame: NSRect, in controlView: NSView) {
super.drawInterior(withFrame: cellFrame, in: controlView)
}
}
不知何故,自定义(第一)列中的文本字段看起来不同(更细?这是截图(Sierra)。
不确定发生了什么,可能是自定义实现使用不同的抗锯齿设置。
我在那里错过了什么?提前谢谢你。
编辑:提到的基于视图的NSTableView
看起来这个错误今天仍然存在。重写NSTextField.draw(_ dirtyRect: NSRect)
或NSTextFieldCell.draw(withFrame cellFrame: NSRect, in controlView: NSView)
并简单地调用super
就足以重现此行为。
解决方法是设置 textField.drawsBackground = false
,将文本字段放入NSBox
或自定义NSView
,并在其中处理图形。