1

テキストフィールドの最初のレスポンダーになるを使用しています。becomeFirst Responder テキストフィールドをタップしようとすると。カーソルはそのテキストフィールドに移動しましたが、そのテキストフィールドに入力できません。この問題は iOS 5 でのみ発生しますが、iOS 4 では問題なく動作します。この問題を解決するために私に説明してください。

  if (textField == fnameTxtFld){

        if([fnameTxtFld.text length]>0)
        {
            if ([fnameTxtFld.text length]<= 100) {

                if (![self checkForSpecialChar:fnameTxtFld.text]) {

                    Custom_Alert *alert=[[Custom_Alert alloc]initWithTitle:@"Alert" message:@"Please check the details entered in First Name" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];

                    [alert show];
                    [alert release];

                    [fnameTxtFld becomeFirstResponder];

                    return NO;

                }
                else
                {
                    [textField resignFirstResponder];
                    fnameTxtImg.image=[UIImage imageNamed:@"birth_date.png"];
                    //    [lnameTxtFld performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0];
                    [lnameTxtFld becomeFirstResponder];

                    return YES;
                }
            }        
            else {
                Custom_Alert *alert=[[Custom_Alert alloc]initWithTitle:@"Alert" message:@"Please check the details entered in First Name" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
                [alert show];
                [alert release];

                [fnameTxtFld becomeFirstResponder];

                return NO;

            }

        }
        else {
            [lnameTxtFld becomeFirstResponder];

            return YES;
            // [fnameTxtFld resignFirstResponder];
        }
    }

fnameTxtFld にいて、lnaneTxtFld をタップしようとすると、カーソルが fnameTxtFld から lnameTxtFld に移動しますが、そのテキスト フィールドに入力できません。テキストはそのテキストフィールドに表示されません。助けてください。

4

2 に答える 2

1

この問題は xcode 4.2 にあると思います。resignFirstResponder と becomeFirstResponderを同じループで使用すると、この種の問題に直面することがあります。これを修正するには、以下のコードに従ってください。これはあなたを助けるかもしれません

辞任FirstResponder

[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];

なるFirstResponder

[textfield performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0];
于 2012-08-30T07:39:04.083 に答える
0

これは部分的にしか機能しないと思います。ブール変数を設定して編集を開始することで、問題なくこの問題を解決しました。そして、私は編集でこの変数にアクセスします。didendEditing が呼び出されたときに呼び出されるべきではありません。あなたの応答をありがとう..

于 2012-08-30T09:07:24.000 に答える