Custom NSTextFieldCell draws text differently

650 Views Asked by At

I have view-based NSTableView with 2 text columns.

First column uses custom NSTextFieldCell. Second column uses the default cell.

Here's the custom cell code:

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)
    }
}

Somehow the text fields in the custom (first) column look differently (thinner?). Here's the screenshot (Sierra).

Not sure what's going on, may be custom implementation uses different antialiasing settings.

What am I missing there? Thank you in advance.

edit: mentioned view-based NSTableView

1

There are 1 best solutions below

0
Mark On

Looks like that bug still exists today. Overriding NSTextField.draw(_ dirtyRect: NSRect) or NSTextFieldCell.draw(withFrame cellFrame: NSRect, in controlView: NSView) and simply calling super is enough to reproduce this behavior.

As a workaround, set textField.drawsBackground = false, place your text field into an NSBox or custom NSView and handle your drawing there.