Ich habe eine Reihe von textfields
in einer einzigen Zeile. Jeder textfield
ist auf zwei Zeichen begrenzt.Swift UITextField deleteBackward Ausgabe
Mein Problem ist, dass ich alle Zeichen löschen und zurück durch alle textfields
gehen will, bis ich an die erste textfield
.
Ich habe das Textfeld subclassiert und die Methode deleteBackward
überschrieben, um festzustellen, ob der Text im Textfeld leer ist. Wenn ja, ändern Sie den Responder in das vorherige Textfeld.
Das ist alles in Ordnung, aber wenn ein Zeichen im Textfeld steht und die Rücktaste gedrückt wird, wird das Zeichen gelöscht und der Responder wird in das vorherige Textfeld geändert.
Das ist falsches Verhalten, da ich möchte, dass der Fokus auf dem Textfeld bleibt, dessen Zeichen gelöscht wurde, und wenn die Löschtaste erneut gedrückt wird, sollte der Antwortende zum vorherigen Textfeld wechseln.
Ich korrigierte dies meine Einstellung ein Flag in der sentChangeCharacters Delegate-Methode des Textfelds. Die Flagge wird auf true gesetzt, wenn ...
if (newLength == 0 && currentLength == 0) || currentLength == 0 {
textFieldEmpty = true
} else {
textFieldEmpty = false
}
Dies funktioniert gut, aber wenn das Textfeld leer ist, und Backspace gedrückt wird, wird dieser Delegat Methode nicht aufgerufen?
Nur herumwandern, wenn jemand ein ähnliches Problem gelöst hat und welchen Ansatz sie genommen haben?
Dank