私は一連のtextfields
を一列に持っています。各textfield
は2文字に制限されています。Swift UITextField deleteBackward Issue
私の問題は、最初のtextfield
になるまで、すべての文字を削除して、すべてtextfields
に戻したいということです。
私はテキストフィールドをサブクラス化し、deleteBackward
メソッドをオーバーライドして、テキストフィールドのテキストが空であるかどうかを判断しました。そうであれば、レスポンダを前のテキストフィールドに変更します。
これはすべて問題ありませんが、テキストフィールドに1文字があり、バックスペースを押すとその文字は削除され、応答者は前のテキストフィールドに変更されます。
これは、文字が削除されたテキストフィールドにフォーカスを置いておき、削除キーを再度押すとレスポンダは前のテキストフィールドに変更する必要があるため、正しく動作しません。
私はこのテキストフィールドのshouldChangeCharactersデリゲートメソッドのフラグを修正しました。フラグが...場合はtrueに設定されている
if (newLength == 0 && currentLength == 0) || currentLength == 0 {
textFieldEmpty = true
} else {
textFieldEmpty = false
}
これはうまく動作しますが、テキストフィールドが空で、バックスペースが押されたときに、このデリゲートメソッドが呼び出されていませんか?
誰もが同様の問題を解決し、どのようなアプローチをとっているのであれば、放浪しているだけですか?
おかげ