左侧的NSTextField填充

use*_*395 4 macos xcode nstextfield swift

如何使用swift在文本字段单元格的文本左侧添加填充?以前的答案仅适用于UITextField或Objective C中.要清楚,这是针对NSTextField的.

pbo*_*dsk 7

以下NSTextFieldCell在Objective C中制作自定义的人的示例.

移植到Swift看起来像这样:

import Cocoa

class PaddedTextField: NSTextFieldCell {

    @IBInspectable var leftPadding: CGFloat = 10.0

    override func drawingRect(forBounds rect: NSRect) -> NSRect {
        let rectInset = NSMakeRect(rect.origin.x + leftPadding, rect.origin.y, rect.size.width - leftPadding, rect.size.height)
        return super.drawingRect(forBounds: rectInset)
    }
}
Run Code Online (Sandbox Code Playgroud)

我已将填充添加为@IBInspectable属性.这样您就可以在Interface Builder中设置它.

要使用新的PaddedTextField,只需将常规拖动Text Field到xib文件即可

普通文本字段单元格

然后更改类内的TextFieldCellPaddedTextField(或者你最终调用您的类)

将类更改为PaddedTextField

最后的结果

希望对你有所帮助.

  • @fnc12:每个“NSTextField”都有一个“NSTextFieldCell”,这就是实现绘图。因此,如果您想自定义文本字段的绘制,则需要调整其单元格或实现您自己的“NSTextFieldCell”并将其分配给文本字段。 (3认同)
  • 卧槽?答案是关于`NSTextField`,而不是关于`NSTextFieldCell`。我仍然无法弄清楚如何向`NSTextField`(不是`NSTextFieldCell`)添加填充 (2认同)