UITextField验证

时间:2015-08-03 04:32:39

标签: ios swift

嗨我是Ios的初学者在我的项目中我正在创建一个注册页面,我必须提供文本字段的验证,就像最好的水平一样,我已经搜索了这么多的文本域验证教程,但我没有得到正确的一个< / p>

根据我的要求,当我点击文本字段时,如果有任何错误,那么需要在文本字段上显示警告消息,如下面的屏幕为此我写了这么多自定义方法,但他们不工作,请帮我一些

enter image description here

3 个答案:

答案 0 :(得分:1)

您必须制作自定义视图以验证textFields

您可以尝试使用https://github.com/ustwo/US2FormValidator

参考Objective-C的代码

US2ValidatorTextField *firstNameTextField  = [[US2ValidatorTextField alloc] init];
firstNameTextField.validator               = [[[MyProjectValidatorName alloc] init] autorelease];
firstNameTextField.shouldAllowViolation    = YES;
firstNameTextField.validateOnFocusLossOnly = YES;
firstNameTextField.placeholder             = @"Enter first name";
firstNameTextField.validatorUIDelegate     = self;
[_textUICollection addObject:firstNameTextField];
[firstNameTextField release];

希望它对你有所帮助。

答案 1 :(得分:1)

我已经编写了很多UITextField个验证器,它总是最好自己做这类事情,因为每个要求都不同,并且对它有更多的控制权。

验证的最佳时间通常是UItextField结束编辑时 - 这样您就知道用户已完成。

您需要查看UITextFielddelegate方法并使用text参数来检查长度和类型。

我无法提供任何代码,因为您没有说明您想要做什么样的验证。如果它的电子邮件 - 这是你需要的东西(虽然它在Objective-C中)

  /* Email address validation test */
    NSString *emailReg = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailReg];

    if ([emailTest evaluateWithObject:emailAddress]){
            validEmail = YES;
    }

答案 2 :(得分:1)

就像你可以用简单的代码来实现它,就像检查和显示警报一样。

  • 如果文本字段为空
  • 如果文本字段包含数字
  • 如果文本字段是电子邮件字段
  • 如果填写了所有必需的文本字段

你可以通过使用这段代码实现这一目标

// To check the email field is not empty string

    if([[self.email text] isEqualToString:@""]){

        UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Warning" message:@"Enter your email!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [alertView show];
    }
// To check the email field has '@' empty string
    else if ([self.email.text rangeOfString:@"@"].location == NSNotFound){
        UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Warning" message:@"Enter proper email!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [alertView show];
    }

您可以这样实现,也可以根据需要使用库。