左侧的NSTextField填充

问题描述:

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

+0

NSTextField似乎没有与UITextField相同的成员函数。 – user3225395

+0

@NSNoob因为它适用于OS X? – Desdenova

+0

@Desdenova确切无误。我正在开发一个macOS应用程序。当然希望它和iOS开发之间有更多的相似之处! – user3225395

Here是谁的人已经在Objective C.

移植到斯威夫特,看起来像这样一个定制NSTextFieldCell的例子:

import Cocoa 

class PaddedTextField: NSTextFieldCell { 

    @IBInspectable var leftPadding: CGFloat = 10.0 

    override func drawingRectForBounds(rect: NSRect) -> NSRect { 
     let rectInset = NSMakeRect(rect.origin.x + leftPadding, rect.origin.y, rect.size.width - leftPadding, rect.size.height) 
     return super.drawingRectForBounds(rectInset) 
    } 
} 

我已经添加填充为@IBInspectable财产。这样你就可以在Interface Builder中设置它。

若要使用新的PaddedTextField您只需将一个普通Text Field到您的厦门国际银行文件

Normal Text Field Cell

,然后更改类内TextFieldCell的是PaddedTextField(或你最终调用您的类)

Change class to be PaddedTextField

The final result

希望能帮到你。

+0

谢谢!你是男人。奇迹般有效。 – user3225395

+0

只有在没有设置背景颜色或者未定制边框的情况下,这才起作用。看到这个:http://*.com/questions/37870474/osx-nstextfield-with-layer-background-color-not-working – Neovibrant