2012-03-06 13 views
10

私はXIBでいくつかのテキストフィールドを使用したビューを持っています。ビューがウィンドウにロードされると、最初のテキストフィールドが最初のレスポンダになります。私のマシンのキーボードのTabキーを押して次のテキストフィールドに移動すると、直前のテキストフィールド以外のすべてのテキストフィールドも最初のレスポンダーになり、テキストフィールドの編集開始デリゲートmenthodがすべてのテキストフィールドに対して呼び出されます。何が問題なの?これは、私たちがiOSデバイス用のブルートゥースキーボードを使用するときにも、マシンのキーボードを使用するときにシミュレータ内で発生するだけでなく、TextField becomeFirstResponder Tabキー(キーボード)アクションの問題

+1

私はちょうど同じ問題にぶつかりました。 textFieldShouldBeginEditingデリゲートメソッドを使用して編集を防止することはできますが、次に問題はtabFieldShouldBeginEditingが呼び出されたかどうかを調べる方法です。 – Vladimir

+0

私も同じ問題に遭遇しました...真剣に、なぜappleがテキストフィールド内でタブキーを押すのを承認しないのですか?shouldChangeCharactersInRange:replacementString: – HurkNburkS

答えて

2

ビュー内のテキストフィールドの階層に関するタブキー=>次のテキストフィールドへの移動を押します。

タブを押すと、textfieldは何度も呼び出されます。つまり、5つのテキストフィールド=> 1つのタブキーが押されると、5つのインスタンスがすべて呼び出されます。 tab - textfielddidbegineditingを押すと、新しいテキストフィールドのインスタンスに対して一度だけ呼び出されます。したがって、テキストフィールドのロジックは、textfielddidbegineditingデリゲートメソッドのほうがよいでしょう。

これはデリゲートメソッドのデフォルトの特性であり、問​​題ではありません。

関連する問題