598 Stimmen

iPhone UITextField - Farbe des Platzhaltertextes ändern

Ich würde gerne die Farbe des Platzhaltertextes ändern, den ich in meinem UITextField Kontrollen, um es schwarz zu machen.

Ich würde es vorziehen, dies zu tun, ohne normalen Text als Platzhalter zu verwenden und alle Methoden überschreiben zu müssen, um das Verhalten eines Platzhalters zu imitieren.

Ich glaube, wenn ich diese Methode außer Kraft setze:

- (void)drawPlaceholderInRect:(CGRect)rect

dann sollte ich in der Lage sein, dies zu tun. Aber ich bin unsicher, wie man das tatsächliche Platzhalter-Objekt aus dieser Methode zugreifen.

0voto

kolinko Punkte 1623

Eine andere Möglichkeit, die keine Unterklassenbildung erfordert, ist, den Platzhalter leer zu lassen und eine Beschriftung auf die Schaltfläche "Bearbeiten" zu setzen. Verwalten Sie die Beschriftung genauso wie Sie den Platzhalter verwalten würden (Löschen, sobald der Benutzer etwas eingibt )

-10voto

anka Punkte 3659

Ich würde eine andere Lösung vorschlagen. Da der Platzhaltertext die Standard-Schrifteinstellungen des Textfeldes verwendet, setzen Sie einfach die anfängliche Schriftfarbe auf die gewünschte Platzhalter-Schriftfarbe. Setzen Sie dann den Delegaten Ihres UITextField und implementieren Sie die folgenden Methoden:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    //set color for text input
    textField.textColor = [UIColor blackColor];
    return YES;
}

- (BOOL)textFieldShouldClear:(UITextField *)textField
{
    //set color for placeholder text
    textField.textColor = [UIColor redColor];
    return YES;
}

Wenn also ein Benutzer beginnt, in das Textfeld zu tippen, ändert sich die Farbe des Textes in Schwarz, und nachdem das Textfeld wieder gelöscht wurde, erscheint der Platzhaltertext wieder in Rot.

Zum Wohl, anka

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X