2012-04-04 15 views
0

Ich habe ein UITextField wo der anfängliche Text ist "username.mysite.com". Die Standardfarbe (Schwarz) ist festgelegt.Zwei verschiedene Farben in einem UITextField

Ich möchte "Benutzername" mit einer anderen Farbe wie grau haben. Ist es möglich?

Benutzer kann auf die Schaltfläche "Löschen" klicken, als der Platzhalter ist "URL".

Antwort

2

Kann nicht direkt mit einem UITextField durchgeführt werden. Ihre grundlegenden zwei Optionen sind:

  1. ein UIWebView Verwenden Sie als Textfeld getarnt. Dies ist einfach, ist aber ein Vorschlaghammer und kann in bestimmten Anwendungsfällen zu Leistungseinbußen führen.

  2. Verwenden Sie Core Text, um einen ordnungsgemäß konfigurierten NSAttributedString anzuzeigen. Obwohl der Link scheint für Mac OS zu sein, existiert Core Text auch auf iOS. Das Framework ist sehr leistungsfähig, hat aber eine steile Lernkurve und unterstützt nicht editierbaren Text aus der Box. Es gibt jedoch verschiedene Open-Source-Bibliotheken, die den Einstieg erleichtern könnten (z. B. DTCoreText. OHAttributedLabel).

+0

Danke, ich werde ein Blick. –

0

Nein, dies ist mit den Standardeinstellungen nicht möglich.

0

Sie können die Farbe des Platzhalters ändern, indem Sie auf folgende private Eigenschaft zugreifen, es wird Ihnen eine Warnung angezeigt, aber es wird sehr gut funktionieren.

[aTextField setValue:[UIColor yellowColor] 
      forKeyPath:@"_placeholderLabel.textColor"]; 

Es gibt eine andere Art und Weise auch vorhanden, dies zu tun, können Sie drawPlaceholderInRect Methode mit benutzerdefinierter Implementierung außer Kraft setzen.

+0

Hallo RIP, ich möchte die Farbe der Eigenschaft Text nicht Platzhalter ändern. Und die Farbe ist nur für den Teil "Benutzername" nicht der gesamte Text. –

+1

ich denke, dass nicht direkt möglich ist, können Sie folgenden Thread überprüfen - http://StackOverflow.com/Questions/2452356/IS-Possible-ToSet-Multiple-Color-in-Uilabel – rishi

Verwandte Themen