1

2つのテキストフィールドがあります。両方のテキストフィールドがいつ入力されるかを確認しています。キーボードの戻るボタンを「実行」に変更します。それ以外の場合は、「戻る」のままになります。正常に動作し、テキストフィールドをタップした場合にのみ、キーボードの戻りタイプが変わります。両方のテキストフィールドが空にならなくなったら、自動的に変更したいと思います。

コードを入れてみました

if ([txtEmail.text length] > 0 && [txtPass.text length] > 0) {
    // Set the return key here, e.g:
    txtEmail.returnKeyType = UIReturnKeyGo;
    txtPass.returnKeyType = UIReturnKeyGo;
}
else {
    // Set the return key here, e.g: 
    txtEmail.returnKeyType = UIReturnKeyDefault;
    txtPass.returnKeyType = UIReturnKeyDefault;
}

- (void)textFieldDidBeginEditing:(UITextField *)textField{}

しかし、それは私にとってはうまくいきません。

両方のフィールドが空でない場合、自動的に、ユーザーがテキストフィールドをタップして変更する必要がない場合、戻るボタンを戻るから移動に変更するにはどうすればよいですか。

4

4 に答える 4

2

両方のテキストフィールドのデリゲートを設定します。次に、UItextFieldsの参照を作成した後、コードをviewDidLoadに1回配置します。

if ([txtEmail.text length] > 0 && [txtPass.text length] > 0) 
{
txtEmail.returnKeyType = UIReturnKeyGo;
txtPass.returnKeyType = UIReturnKeyGo;
}
else 
{

txtEmail.returnKeyType = UIReturnKeyDefault;
txtPass.returnKeyType = UIReturnKeyDefault;
}
于 2012-06-26T10:43:46.503 に答える
1

textFieldDidBeginEditting編集が開始される前に起動するので、明らかにテキストはそこで変更されません。

あなたがする必要があるのは、変更を発見するためにキーの押下を検出し、その変更のreturnKeyタイプに基づいて行うことです。この質問を参照してください:UITextFieldでKeyPressイベントを検出するにはどうすればよいですか?-キープレスイベントを扱います。

于 2012-06-26T10:41:57.503 に答える
1
//have you set the delegate of your textField if not then please set it.. 

txtEmail.delegate = self;
txtPass.delegate = self;
于 2012-06-26T10:44:23.570 に答える
1

ヘッダーファイルUITextFieldDelegateをプロトコルでチェックインし、

デリゲートを自分自身に設定することを忘れないでください。

txtEmail.delegate = self;
txtPass.delegate = self;
于 2012-06-26T12:00:45.750 に答える