【问题标题】:How to ignore placeholder text in iOS6 UITextField如何忽略 iOS6 UITextField 中的占位符文本
【发布时间】:2014-01-25 10:08:32
【问题描述】:

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

除了将每个UITextField's 内容与整个应用程序中所有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;
    }
}

编辑 2: 好吧,这很奇怪。当我用UITextFields 加载ViewController 时,验证是错误的(它说表单是完整的,即使它不是)。但是如果我输入UITextField,写一些东西然后删除我刚刚写的验证是正确的(它说表单不完整时)。如果这有什么不同,我将从情节提要中设置占位符。

谢谢

【问题讨论】:

  • 发布您的相关代码。文本字段的placeholder 不会干扰其text 值。一定有其他事情发生。
  • @rmaddy 谢谢,已更新
  • 您没有解释发布代码的问题所在。是否存在显示为空但检查失败的字段?也许他们有一个空格或其他空格。使用调试器并运行这段代码,看看发生了什么。

标签: ios iphone objective-c uitextfield placeholder


【解决方案1】:

试试这个

-(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;
}

【讨论】:

  • 此代码与 OP 的原始代码之间唯一真正的区别是此代码处理文本字段的 text 值为 nil 的情况。在这种情况下,这似乎是一个重要的区别。
猜你喜欢
  • 1970-01-01
  • 2018-05-16
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 2012-03-30
  • 2014-02-17
  • 2012-01-21
  • 2016-10-07
相关资源
最近更新 更多