Cómo editar el texto de UITextfield Si UITextfield tiene una cadena particular cuando el usuario interactúa con él

StackOverflow https://stackoverflow.com/questions/8859299

Pregunta

Estoy desarrollando un formulario. Entonces, cuando el usuario haga clic en el botón Enviar, verifique si se llenan todos los 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"; 
    }
}

Ahora, si el usuario hace clic en uno de los UITextfield con fondo rojo y cadena "Campo Obbligatoria", quiero borrar el texto y retrasar el color en blanco. Intento usar uitextfielddelegate e implementación textFieldShouldBeginEditing revisando esto:

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

No pasa nada..

Así que intento agregar una Ibaction y en XIB agregándolo a cada UITextfield, pero no pasa nada :( ¿Qué puedo hacer?

¿Fue útil?

Solución

Me burlé de una prueba usando tu lógica y debería funcionar bien. Supongo que no has asignado el UITextField delegar. En Interface Builder Necesita CTRL+hacer clic en su UITextField y arrastre al objeto que desea actuar como delegado.

Probablemente consideraría cambiar cómo verifica si necesita borrar el UITextField. Verificar contra una cadena de interfaz de usuario (@"CAMPO OBBLIGATORIO") probablemente se rompa si i18nize su aplicación más tarde.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top