2016-09-10 9 views
0

Ich habe ein UITextField in meinem Projekt mit der Clear-Taste während der Bearbeitung aktiviert.Swift - Textverschiebung deaktivieren, wenn die Löschtaste erscheint

Jeder zentrierte Text in der Box verschiebt sich nach links, um Platz für die klare Schaltfläche im Fokus zu schaffen. Ist es mir möglich, diese Verschiebung zu deaktivieren? Ich fühle, dass es ablenkt.

Bitte beachten Sie die folgenden Screenshots: enter image description here enter image description here

Antwort

0

Um das Problem zu beheben, unterordnete ich UITextField und fügte der Unterklasse Folgendes hinzu.

override func editingRectForBounds(bounds: CGRect) -> CGRect { let padding = UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5); return UIEdgeInsetsInsetRect(bounds, padding) }

Antwort wurde hier gefunden: Create space at the beginning of a UITextField

1

Ist es möglich für mich, diese Verschiebung

Mit einiger Vorsicht zu deaktivieren, ja, können Sie es auf jeden Fall. Die Zeichnung des Textes liegt tatsächlich bei Ihnen, wenn Sie UITextField ableiten: Sie können drawText(in:) und/oder textRect(forBounds:) überschreiben und übernehmen, wohin der Text geht.

+0

Ich habe eine Notwendigkeit, nicht hatte UITextField vor außer Kraft zu setzen, so dass diese Spekulation ist, konnte aber nicht, dass Sie auch das Textfeld einer 'textRectForBounds' Methode überschreiben? –

+0

@DuncanC Uh, das habe ich gesagt. Nur habe ich es in Swift 3 gesagt. :) Xcode 8 ist GM geworden, Zeit, um in die Zukunft vorzudringen. – matt

+0

Oh, verpasste das bisschen. Hätte genauer hinsehen sollen. –

Verwandte Themen