0

ここで見つけた @PeyloW コードを使用しようとしていますが、テキストフィールド (次へ/完了ボタン) をナビゲートする方法ですが、キーボードの戻るボタンを押しても何も起こりません。私のタグは大丈夫です。

ヘッダ:

- (BOOL)textFieldShouldReturn:(UITextField*)textField;

実装:

- (BOOL)textFieldShouldReturn:(UITextField*)textField {
    NSInteger nextTag = textField.tag + 1;
    UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];

    if (nextResponder) {
        [nextResponder becomeFirstResponder];
    } else {
        [textField resignFirstResponder];
    }
    return NO;
}

私は何が欠けていますか?私のキーボードには次の操作がなく、戻るだけです。私はiOSに非常に慣れていないことに注意してください。

編集:

ブレークポイントを追加してコードをデバッグしようとしましたが、コードがトリガーされません。

4

1 に答える 1

2

タグを組み込んだソリューションは好きではありません。代わりに、すべての入力ファイルを目的の順序で配列に入れ-textFieldShouldReturn:、指定されたテキストフィールドを使用して配列内のインデックスを取得します。次に、そのインデックスでオブジェクトを取得します。

- (BOOL)textFieldShouldReturn:(UITextField*)textField {
    NSUInteger nextIndex = [arrayWithResponders indexOfObject:textField]+1 % [arrayWithResponders count];
    UIResponder* nextResponder = [arrayWithTextFields objectAtIndex: nextIndex];

    if (nextResponder) {
        [nextResponder becomeFirstResponder];
    } else {
        [textField resignFirstResponder];
    }
    return NO;
}

ブレークポイントがトリガーされないことを追加したので、おそらくデリゲートを設定していません。

于 2012-10-10T15:58:28.880 に答える