2013-04-06 15 views
7

3つのテキストフィールドがあり、次のフィールドにカーソルを移動できます。最後の文字に達すると、キーボードは消えます。しかし、何も私のために働く...ここに私が持っているものの例です。しかし、何も動かず、次のボタンを選択すると何も起こりません。UITextFieldカーソルを次のテキストフィールドに移動する方法

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if (textField == field1TextField) { 
     [textField resignFirstResponder]; 
     [field2TextField becomeFirstResponder]; 
    } 
    else if (textField == field2TextField) { 
     [textField resignFirstResponder]; 
     [field3TextField becomeFirstResponder]; 
    } 
    else if (textField == field3TextField) { 
     [textField resignFirstResponder]; 
    } 
    return YES; 
} 
+3

テキストフィールド代理人が正しく設定されていますか?このメソッドはまったく呼び出されますか? – stevex

+0

このメソッドは呼び出されますか?それが..で、textField == field1TextFieldブロックが呼び出され、field2TextFieldがnilでなければ、それはうまくいくように見えます。 – stevex

+0

あなたのコメントを質問にしてください!私はそれを忘れてしまった!私はそれをチェックする! –

答えて

3

このメソッドがバインドされているオブジェクトは、テキストフィールドの代理人として設定する必要があります。これをチェックするには、メソッドにブレークポイントを設定して、それが呼び出されたと思ったときに呼び出されることを確認します。

ニブまたはストーリーボードを使用している場合、field...インスタンス変数は、正しく接続されたアウトレットである必要があります。プログラムによって作成されている場合は、それらにオブジェクトが割り当てられていることを確認する必要があります。メソッドの内部にあるときに、これらの変数の値を調べて、これを確認します。

他のコントロールにbecomeFirstResponderを呼び出す前に、resignFirstResponderを他のコントロールに呼び出す必要はありません。

+0

あなたの答えをありがとう –

関連する問題