私はXIBファイルの2つの垂直スタックビューで構成された登録フォームにたくさんのテキストフィールドを持っています。シミュレータでアプリを実行するときにTabキーを押すと、iOSが自動的に次のテキストフィールドに移動することに気付きました。シミュレータでTabキーを押したときに、次にフォーカスするテキストフィールドをiOSがどのように決定するのですか?
しかし、これは時々動作しません、なぜ私は不思議に思っていました。時々、システムは、その下のフィールドではなく、別のスタックビューからテキストフィールドをフォーカスします。
(ソフトウェアキーボードで[次へ]を押したとき)私はすでにこのように次のテキストフィールドの連鎖を設定している:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
NSUInteger index = [self.textFields indexOfObject:textField];
if (index != NSNotFound) {
if (index == self.textFields.count - 1) {
[textField resignFirstResponder];
[self createAccount];
} else {
UITextField *nextTextField = self.textFields[index + 1];
[nextTextField becomeFirstResponder];
}
return NO;
}
return YES;
}
textFields
は、この画面は上から下に持っているすべてのテキストフィールドの配列です。
ちょっとした文字を入力し、追加のマウスクリックをせずにTabキーを押すだけで、フォームをすばやく入力できます。出来ますか?
この「タブスイッチ」の間に-textFieldShouldReturn
が呼び出されないため、次の最初のレスポンダになるテキストフィールドを制御できません。彼らに正しい順序で集中させるためのトリックは何ですか?
[テキストフィールド(次/完了ボタン)をナビゲートする方法](https://stackoverflow.com/questions/1347779/how-to-navigate-through-textfields-next-done-buttons)の可能な複製 – atulkhatri
'self.textFields'をもう一度確認してください。多分それは間違った順序を持っています。または、refを削除してから、必要な順序で再度接続してみてください。 – anhtu
このトピックのもう1つの興味深い貢献:https://stackoverflow.com/a/6177614/6319106 – clemens