Frage


Ich habe eine UITextField, und ich brauche nur Zahlen, Komma oder Punkt der Eingabe in diesem Bereich zu ermöglichen.
Wie kann ich überprüfen, ob diese Zeichenfolge jedes Zeichen anstelle dieser enthält oben und wie kann ich sie ersetzen / löschen?

speichert Mein Feld eine Kosten und ich brauche nur Zahlen, Komma oder Punkt ...

Kann mir jemand helfen?
Dank!

War es hilfreich?

Lösung

Sie können die -textFieldDidEndEditing: Methode aus dem UITextFieldDelegate-Protokoll verwenden. Diese Methode wird aufgerufen, wenn ein Textfeld den ersten Responder-Status (d.h. Enden Bearbeitung) zurücktritt. Dies ist die Chance, den eingegebenen String zu überprüfen. Wenn Sie einen Scheck nach jedem Zeichen auszuführen, die eingegeben wurden, Verwendung -textField:shouldChangeCharactersInRange:replacementString: als donkim vermuten läßt.

Andere Tipps

Für das Textfeld ein, könnten Sie die UITextFieldDelegate verwenden und die textField:shouldChangeCharactersInRange:replacementString: Methode implementieren. Nach der Dokumentation „ruft das Textfeld diese Methode, wenn der Benutzer ein neues Zeichen in das Textfeld ein oder Löschungen ein vorhandenes Zeichen.“ Bei dem Verfahren, sollten Sie einen Scheck für alle Nicht-Anzahl Zeichen tun und entfernen.

Statt die Zeichenfolge überprüfen, warum kann man die Tastatur Wert des Textfeldes als NumberPad zuweisen. Damit der Anwender nicht in der Lage sein, eine Zeichenfolge eingeben.

Sie können es tun, indem Benutzer die Überwachung Eingabe im Feld und automatisch nicht passende Zeichen zu entfernen. Erstellen Sie eine IBAction Methode:

- (IBAction)validateEntry:(id)sender;

fügen Sie es dann in das Textfeld Bearbeiten geändert Veranstaltung. Das Verfahren wird jedes Mal, wenn der Text in den Feldänderungen aufgerufen werden, ob von dem Benutzer der Eingabe oder vom Benutzer Einfügen von Text in.

Innerhalb der Methode können Sie den Text prüfen und zu beleidigen Zeichen oder, höflicher zu entfernen, eine UILabel aktualisieren, die den Benutzer sagt sie ungültige Zeichen und deaktivieren jeder einreichen Tasten eingegeben hat, bis es behoben ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top