如果uitextfield在用户与其交互时具有特定字符串,如何编辑uitextfield的文本

时间:2012-01-14 01:10:15

标签: objective-c uitextfield ibaction uitextfielddelegate

我正在开发一个表格。因此,当用户单击“提交”按钮时,我会检查是否所有uitext字段都已填满:

-(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但没有任何反应:(我该怎么办?

1 个答案:

答案 0 :(得分:1)

我只是使用你的逻辑模拟测试,它应该工作得很好。我的猜测是你没有分配UITextField代表。在Interface Builder中,您需要按住UITextField进行操作并拖动到要作为代理人的对象。

我可能会考虑更改您检查是否需要清除UITextField的方式。如果您稍后确认应用程序,则检查用户界面字符串(@"CAMPO OBBLIGATORIO")可能会中断。