2017-10-31 1 views
0

Ich habe UITextfields in Tabellenansichtszellen ausgerichtet. Wenn ein Benutzer auf ein Textfeld tippt, bewegt sich sein Platzhalter leicht nach links. Ich habe auch Screenshots angehängt. Bitte hilf mir.Mitte ausgerichtet UITextfield ändert seinen Platzhalter nach links, wenn er angetippt wird

In first picture, fusion id is moved towards left as its selected.

In second picture, password is moved towards left as its selected.

+0

Können Sie Ihren Code posten? Oder hast du das in einem Storyboard/xib erstellt? –

+0

@RhuariGlen im Storyboard –

+0

Bitte bestätigen Sie, dass das erste Zeichen kein Leerraum sein darf (mit Platzhalter), es könnte ein solches Problem sein. –

Antwort

1

I subclassed UITextField wie folgt aus:

class MyTextField : UITextField { 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 

     if let placeholderText = self.placeholder { 

      let centeredParagraphStyle = NSMutableParagraphStyle() 
      centeredParagraphStyle.alignment = .center 
      let attributedPlaceholder = NSAttributedString(string: placeholderText, attributes: [NSAttributedStringKey.paragraphStyle: centeredParagraphStyle]) 
      self.attributedPlaceholder = attributedPlaceholder 
     } 
    } 
} 

dann im Interface Builder setzen die Klasse des UITextField zu myTextField

Set the Custom Class of the IB Object

Hier sind einige Bilder von myTextField Verhalten im Vergleich zu UITextField

Two placeholders behaving differently normal carat aligns to beginning of Placeholder which is also beginning UITexField centered carat aligns only to beginning of placeholder normal text entry aligns to beginning of UITextField "centred" text entry also aligns to beginning of MyTextField

Dies ist nicht das vollständige Verhalten Sie wollen sein können, aber der Platzhalter „herumspringen“ nicht und es Es ist möglich, diese Art von Technik zu erweitern, um andere Verhaltensweisen zu überwinden, falls dies gewünscht wird.

+0

In meinem Fall nicht funktioniert –

+0

Können Sie überprüfen, ob Sie die benutzerdefinierte Klasse korrekt festgelegt haben? siehe aktualisierte Antwort ... – Damo

+0

Darüber hinaus kompiliert Ihr Code nicht in swift 3. Seine geben Fehler [NSAttributedStringKey.paragraphStyle: centeredParagraphStyle] –

Verwandte Themen