Was ist der geeignete Weg in iOS 7, um mit der Validierung von Texteingabefeldern umzugehen? Gibt es eine Alternative zum Anzeigen des Dialogs?
Ich habe nicht viel Erfahrung mit iOS-Apps (ich bin eher ein Android-Fan) und ich möchte, dass es Androids ähnlich ist:
%Vor%Das nächste, was ich gefunden habe, ist diese Bibliothek , aber ich würde gerne wissen, ob es etwas natives in iOS gibt (wenn möglich, Ich möchte vermeiden, 3rd-Party-Bibliotheken zu verwenden).
Vielen Dank im Voraus.
Ich bin mir nicht bewusst, etwas so einfaches wie das Android-Beispiel, das Sie erwähnen. Aber sobald Sie festgestellt haben, dass ein Wert gemäß @ Herre_84 ungültig ist, haben Sie einige Dinge, die Sie tun können Es muss ein Warndialog geöffnet werden.
Es ist üblich, die Overlay-Ansichten von UITextField
zu verwenden, um anzuzeigen, dass der Wert fehlerhaft ist. Es gibt Overlay-Ansichten, die für Sie auf der linken und rechten Seite von UITextField
verfügbar sind. Sie können Bilder einfügen, die den gültigen Status der Eingabe angeben, wie in der Antwort auf diese Frage . Weitere Details sind in der offiziellen Apple-Dokumentation .
Eine andere weniger gebräuchliche Sache, die Sie tun können, ist die attributedText
-Eigenschaft von UITextField
, um anzuzeigen, dass der Text nicht gültig ist. Zum Beispiel könnten Sie falschen Text eine andere Farbe geben. TSValidatedTextField
demonstriert, wie das geht.
Schließlich könnte man eine völlig separate Ansicht (vielleicht in der Nähe Ihres UITextField
erscheint) verwenden, die Sie mit Gültigkeitsinformationen aktualisieren. Sie würden die beiden Ansichten verkabeln müssen, wahrscheinlich über einen gemeinsamen übergeordneten View-Controller, um die Kommunikation zwischen ihnen zu bewirken.
Es gibt keinen standardmäßigen oder spezifischen "iOS7" Weg um Text zu validieren. Sie könnten jedoch Ihr eigenes "Validierungs-Framework" implementieren (ähnlich dem, auf das Sie in dem von Ihnen hinzugefügten Link verweisen), indem Sie die eigenen delegierten Methoden von UITextfield
wie
- (void)textFieldDidEndEditing:(UITextField *)textField
, das anzeigt, dass der Benutzer die Bearbeitung beendet hat (z. B. wenn er die Tastatur geschlossen oder die Taste "Fertig" gedrückt hat) - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
, die ausgelöst wird, wenn ein neues Zeichen in das UITextField eingegeben wird. Basierend auf diesen Ereignissen können Sie die aktuelle NSString
in der UITextField
mit der Eigenschaft text
auswerten und Ihre Benutzeroberfläche entsprechend anpassen.
Tags und Links validation ios7 input uitextfield