在iOS 7应用程序中验证表单的最佳方法是什么?

时间:2014-02-17 18:57:59

标签: cocoa-touch ios7 validation

我的表单有两个部分,第一部分有一个“下一步”按钮,它带到另一个视图控制器,我填写表单的后半部分然后提交。

我有以下字段: 第一种形式:名称,年龄,自(以dd / mm / yyyy为单位的日期)格式,From,Notes。 第二种形式:联系人姓名,电子邮件,电话,笔记。

如果第一张表单没有完全完成且用户点击“下一步”按钮,则警告应显示解释表格上需要更正的内容。

如果用户离开某个字段并进入另一个字段并且在他们离开的字段中出现错误,则会有一个警报显示会很好。更好的是,如果一切正常,我可以将字段边框显示为绿色,否则显示为红色。

我想这样做只有字母字符可以在名称字段中输入,日期格式为“自”字段中的dd / mm / yyyy等等。

我的所有文本字段代码都在prepareForSegue:方法中。现在我创建一个对象的新实例,并将属性设置为文本字段的文本值,然后将该对象传递给下一个控制器。我想知道是否有一种方法可以让文本字段在单击时进行侦听并检测正在键入的内容,这样就可以检查输入的内容是否违反了规则。我用谷歌搜索,似乎找不到多少。

这样做的最佳方法是什么,或者有标准可以遵循?

2 个答案:

答案 0 :(得分:2)

我认为这个问题没有预定义的解决方案。 但你必须创建自己的解决方案。

这里有一些例子 - 喜欢电子邮件验证

-(BOOL)validateEmailWithString:(NSString*)email
{
 NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
 NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:email];
}

你可以自己创造一些。 这里是some link you for help

答案 1 :(得分:2)

Cocoa中有key-value validation模式。但它不会在iOS上自动调用。无论何时,只要您想要通知用户输入错误,您就必须这样做。

在单击“下一步”按钮后,可能想要这样做。如果可以验证为每个输入字段隔离的用户输入,这是Web应用程序样式,从用户的角度来看也不是一个好主意。

您应该使用输入字段的委托(可能是一个委托)并实现委托方法以进行结束编辑-textFieldDidEndEditing:或更改-textField:shouldChangeCharactersInRange:replacementString: