2

我有带有 2 个文本列的基于视图的 NSTableView。

第一列使用自定义 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)
    }
}

不知何故,自定义(第一)列中的文本字段看起来不同(更薄?)。这是屏幕截图(塞拉)。

不确定发生了什么,可能是自定义实现使用了不同的抗锯齿设置。

我在那里想念什么?先感谢您。

编辑:提到基于视图的 NSTableView

4

1 回答 1

2

看起来这个错误今天仍然存在。覆盖NSTextField.draw(_ dirtyRect: NSRect)NSTextFieldCell.draw(withFrame cellFrame: NSRect, in controlView: NSView)简单地调用super就足以重现此行为。

作为一种解决方法,设置textField.drawsBackground = false,将您的文本字段放入NSBox或自定义NSView并在那里处理您的绘图。

于 2019-02-01T07:41:23.323 回答