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 Builder您需要按住 ctrl + 单击您的UITextField并拖出您要充当代理的对象。

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

于 2012-01-14T01:23:57.683 回答