左侧的NSTextField填充

时间:2016-07-01 05:42:26

标签: xcode swift macos nstextfield

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

1 个答案:

答案 0 :(得分:7)

Here是在Objective C中制作自定义NSTextFieldCell的人的一个示例。

移植到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)
    }
}

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

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

Normal Text Field Cell

然后将内部TextFieldCell的类更改为PaddedTextField(或者您最终称之为课程的内容)

Change class to be PaddedTextField

The final result

希望对你有所帮助。