自定义 NSTextFieldCell 以不同的方式绘制文本



我有基于视图的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,并在其中处理图形。

最新更新