0

フォームを開発しています。したがって、ユーザーが送信ボタンをクリックすると、すべてのuitextfieldが入力されているかどうかを確認します。

-(BOOL)checkUITextField{
    BOOL flag = YES;
    if(cognome.text.length==0){
        flag=NO;
        cognome.backgroundColor=[UIColor redColor];
        cognome.text=@"CAMPO OBBLIGATORIO"; 
    }else if(indirizzo.text.length==0){
        flag=NO;
        indirizzo.backgroundColor=[UIColor redColor];
        indirizzo.text=@"CAMPO OBBLIGATORIO"; 
    }else if(citta.text.length==0){
        flag=NO;
        citta.backgroundColor=[UIColor redColor];
        citta.text=@"CAMPO OBBLIGATORIO"; 
    }
}

ここで、ユーザーが背景が赤で文字列が「CAMPO OBBLIGATORIO」のuitextfieldのいずれかをクリックすると、テキストをクリアして色を白に戻したいと思います。私はこれをチェックして使用uitextfielddelegateして実装してみます:textFieldShouldBeginEditing

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    if([textField.text isEqualToString:@"CAMPO OBBLIGATORIO"]){
        textField.text=@"";
        textField.backgroundColor=[UIColor whiteColor];
    }
}

何も起こりません..

だから私はibactionを追加してみて、xibでそれをすべてのuitextfieldに追加しようとしましたが、何も起こりません:(何ができますか?

4

1 に答える 1

1

私はあなたのロジックを使用してテストをモックアップしました、そしてそれはうまくいくはずです。私の推測では、あなたはUITextField代理人を割り当てていません。で、Interface BuilderCtrlキーを押しながらクリックしてUITextField、デリゲートとして機能するオブジェクトにドラッグアウトする必要があります。

をクリアする必要がある場合は、チェック方法を変更することを検討しますUITextField@"CAMPO OBBLIGATORIO"後でアプリをi18nizeすると、ユーザーインターフェイス文字列()に対するチェックが失敗する可能性があります。

于 2012-01-14T01:23:57.683 に答える