Ich schreibe eine Validierung für mein Textfeld, ich fand etwas interessantes, ob ich überprüfen kann, wie viele Ziffern ich in Echtzeit in das Textfeld eintippe. Meine Textfeldeingabe muss eine 8-stellige Nummer sein. Also möchte ich den Text innerhalb des Textfelds in eine grüne Farbe ändern, wenn ich 8 Stellen erreiche und die Farbe ändere, wenn das nicht der Fall ist.
Wie kann ich das tun? Bitte helfen Sie mir, danke im Voraus.
Die Verwendung von -textField:shouldChangeCharactersInRange:replacementString:
ist wahrscheinlich eine schlechte Lösung, da sie ausgelöst wird, bevor das Textfeld aktualisiert wird. Diese Methode sollte wahrscheinlich verwendet werden, wenn Sie den Text des Textfelds ändern möchten, bevor die Tastatur automatisch aktualisiert wird. Hier möchten Sie wahrscheinlich beim Bearbeiten von Wertänderungen einfach die Ziel-Aktion-Paarung verwenden:
Versuchen Sie dann in - (void)checkTextField:(id)sender
:
Verwenden Sie UITextFieldDelegate . vor allem diese Funktion
%Vor%und Sie können Beispielcode-Links von hier erhalten.
einen Delegaten für das UITextField
Einrichten und die Methode implementieren – textField:shouldChangeCharactersInRange:replacementString:
Details und Beispiele sind in dem UITextFieldDelegate-Protokoll-Referenz , aber hier ist ein kleines Beispiel:
Aktualisieren Sie Swift 4.0
%Vor%Ruf jetzt deine Funktion an. In meinem Fall wird dies die Speichern-Schaltfläche aktivieren
%Vor%Ich hoffe, es hilft.
Tags und Links ios cocoa-touch uitextfield