如何在iOS6 UITextField中忽略占位符文本

Pap*_*ick 0 iphone objective-c placeholder uitextfield ios

我有一个数据录入应用程序,我主要使用iOS7开发,但它将支持ios 6.我注意到UITextField当我尝试在iOS6中验证表单时检查是否为空时它会告诉我它如果那里有占位符文本,则不为空.在iOS 7中我没有这个问题.

有没有人有任何有效的解决方案除了将每个UITextField's内容与其placeholdet文本匹配UITextFields整个应用程序中的所有内容?

编辑: 如果验证是问题,这是我的验证码.很简单,我使用强制执行迭代数组UITextFields并检查它们中是否有任何输入.

-(void)checkIfComplete{
    BOOL complete = YES;
    for(int i = 0; i < self.mandatoryFields.count; i++){
        UITextField *tempTextField = self.mandatoryFields[i];

        if([tempTextField.text  isEqual: @""]){
            complete = NO;
        }
    }

    if(complete){
        self.btnSave.enabled = YES;
    }else{
        self.btnSave.enabled = NO;
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑2: Okey这很奇怪.当我加载ViewController时,UITextFields验证是错误的(它表示表单已完成,即使它不是).但是,如果我输入a UITextField,写一些内容然后删除我刚才写的内容,验证是正确的(它表示形式是不完整的).如果这有任何区别,我将从故事板中设置我的占位符.

谢谢

Bil*_*een 5

试试这个

-(void)checkIfComplete{
    BOOL complete = YES;
    for(int i = 0; i < self.mandatoryFields.count; i++){
        UITextField *tempTextField = self.mandatoryFields[i];

        if(tempTextField.text.length == 0){
            complete = NO;
            break;
        }
    }

    self.btnSave.enabled = complete;
}
Run Code Online (Sandbox Code Playgroud)

  • 这段代码与OP原始代码之间唯一真正的区别在于,此代码处理文本字段的`text`值为`nil`的情况.在这种情况下,这似乎是一个重要的区别. (2认同)