2011-06-20 6 views
1

初めての方はiPhoneです。 numPadキーボードタイプのiPhoneに2つのテキストフィールドがあります。numberPadKeyBoardを使用して1桁の数字を入力すると、コントロールは次のtextFieldに移動する必要があります。つまり、2番目のテキストフィールドはFirstResponderになります。私はこれを実装する方法を知らない。助けていただければ幸いです。キーボード入力を使用すると、UitextFieldがコントロールを次のテキストフィールドに移動します。

答えて

2
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 

if(textField == urFirstTextField) { 
[urFirstTextField resignFirstResponder]; 
[urSecondtextField becomeFirstResponder]; 

} 

} 

UPDATE

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    if(textField != urFirstTextField) 
    { 
     [textField resignFirstResponder]; 
     [urFirstTextField becomeFirstResponder]; 
     return NO; 
    } 
     return YES; 
} 
+0

@ 7KV7 - 正常に動作しています。もう1つの質問。私が2つではなく3つのテキストフィールドを持っていて、どのテキストフィールドのユーザーが最初にタップしても、最初のtextFieldを毎回最初のレスポンダにしたいとします。同じ関数にどこにコードを入れるべきですか?そしてどうやって? - (BOOL)テキストフィールド(UITextFieldの*)テキストフィールドshouldChangeCharactersInRange:(NSRange)レンジreplacementString:(NSStringの*)列{ \t場合 \t {[テキストフィールドbecomeFirstResponder];} 場合(テキストフィールド== textField_1(テキストフィールド= textField_1!) && textField.text.length == 1){ \t}これは正しいアプローチですか? – Vik

+0

@Vik:アップデートが役立つかどうかを確認してください – visakh7

+0

@ 7kv7 - このアップデートは機能していません。ユーザーがタップする最初のレスポンダと同じテキストフィールドを作成します。最初のテキストフィールドを最初のレスポンダーにする必要がないたびに、私のアプローチで何が間違っているのか教えてください。何か案は? – Vik

1

は、あなたがテキストフィールド1とのTextField2が、その後

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 
     if(textField == textField1) 
      { 
       [textField1 resignFirstResponder]; 
       [textField2 becomeFirstResponder]; 
      } 
     return YES; 
} 
0

としてUITextFieldDelegateのdelgateメソッドを実装する2テキストフィールドは、名前付きのUITextFieldのデリゲートメソッドを経由していると仮定します"textField:shouldChangeText:inRange:" .....あなたのtextFieldの長さをチェックし、最初のレスポンスとして2番目のtextFieldを作成しますYESを返す前にder。

他の多くのデリゲートメソッドを使用してプレイすることもできます。

関連する問題