i’m developing a form. So when user click on submit button, i check if all uitextfield are filled:
-(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";
}
}
Now, if user click on one of the uitextfield with background red and string “CAMPO OBBLIGATORIO”, i want to clear text and set back color to white.
i try using uitextfielddelegate and implementing textFieldShouldBeginEditing checking this:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if([textField.text isEqualToString:@"CAMPO OBBLIGATORIO"]){
textField.text=@"";
textField.backgroundColor=[UIColor whiteColor];
}
}
Nothing happens..
so i try adding an ibaction and in xib adding it to every uitextfield but nothing happens 🙁 What can i do?
I just mocked up a test using your logic and it should work just fine. My guess is that you have not assigned the
UITextFielddelegate. InInterface Builderyou need to ctrl+click on yourUITextFieldand drag out to the object you want to act as delegate.I would probably consider changing how you check if you need to clear the
UITextField. Checking against a user interface string (@"CAMPO OBBLIGATORIO") will likely break if you i18nize your app later.