2016-07-25 17 views
2

enter image description hereTextfeld Platzhalter Schrift erzeugt Ausgabe

I-Taste als rightView zu Textfeld hinzugefügt haben.

Ich habe Text mit benutzerdefinierter Schriftart als Platzhaltertext zugewiesen.

Der Platzhalter und die Textschriftart meines Textfelds sind unterschiedlich.

Aber wenn textfield Text ist groß und wenn ich den ganzen Text auswählen und entfernen es dann zeigt es nicht Platzhalter Text in seiner Schriftart. Es wird in der Textfeldschrift angezeigt.

Details Erläuterung:

  • Mein Textfeld der Textschrift ist: OpenSans Bold 18,0
  • Mein Textfeld der Platzhalter-Text-Schriftart ist: OpenSans 18,0 (Regular)

Aber wenn ich Loch Text auswählen (groß) und Text löschen dann zeigt es Platzhalter Text in: OpenSans Bold 18.0

Aber es sollte Platzhalter Text in anzeigen: OpenSans 18.0 (Regular)

enter image description here

Antwort

3

Ich denke, man wird die Schriftart jedes Mal festlegen müssen die Platzhalter erscheint/verschwindet. Stellen Sie den Textfeld Delegierten und fügen Sie diesen Code ...

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 

    let length = (textField.text?.characters.count)! + (string.characters.count - range.length) 

    // If there is text in the text field 
    if (length > 0) { 
     // Set textfield font 
     textField.font = UIFont(name: "OpenSans Bold", size: 18) 
    } else { 
     // Set textfield placeholder font (or so it appears) 
     textField.font = UIFont(name: "OpenSans Regular", size: 18) 
    } 

    return true; 
} 

Obj-C:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{  
    // If there is text in the text field 
    if (textField.text.length + (string.length - range.length) > 0) { 
     // Set textfield font 
     textField.font = [UIFont fontWithName:@"OpenSans Bold" size:18]; 
    } else { 
     // Set textfield placeholder font (or so it appears) 
     textField.font = [UIFont fontWithName:@"OpenSans Regular" size:18]; 
    } 

    return YES; 
} 
+1

@EricD: Ich habe nur den Code, den ich lange zuvor. Trotzdem verstehe ich deinen Standpunkt. Antwort aktualisiert – Nishant

+0

Danke. Es funktioniert. –