Wie fügen Sie Padding auf der linken Seite des Textes in einer Textfeldzelle mit swift? Vorherige Antworten sind nur für UITextField oder in Objective C. Um es klar zu sagen, dies ist für ein NSTextField.NSTextField Padding auf der linken Seite
Antwort
Here ist ein Beispiel für jemanden, der eine benutzerdefinierte NSTextFieldCell
in Objective C.
portiert Swift, der so aussieht gemacht hat:
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)
}
}
Ich habe die Polsterung als @IBInspectable
Eigenschaft hinzugefügt. Auf diese Weise können Sie es in Interface Builder beliebig einstellen.
Um die neue verwenden PaddedTextField
Sie ziehen Sie einfach eine regelmäßige Text Field
auf Ihre xib Datei
und dann die Klasse des inneren TextFieldCell
ändern PaddedTextField
zu sein (oder was Sie Ihre Klasse aufrufen Ende)
Und voila
Hoffnung, die Ihnen hilft.
Vielen Dank! Du bist der Mann. Klappt wunderbar. – user3225395
Dies funktioniert nur, wenn keine Hintergrundfarbe festgelegt wurde oder der Rahmen nicht angepasst wurde. Siehe hierzu: http://stackoverflow.com/questions/37870474/osx-nntextfield-with-layer-background-color-not-working – Neovibrant
Ein NSTextField scheint nicht die gleichen Elementfunktionen wie ein UITextField zu haben. – user3225395
@NSNoob Weil es für OS X ist? – Desdenova
@Desdenova Genau. Ich entwickle eine App für MacOS. Ich wünschte es gäbe mehr Ähnlichkeit zwischen iOS und iOS! – user3225395