您可以在文本字段的右侧显示错误图标,而不是显示uialert。这样,如果发生3次,不会导致警报出现,用户将不知道该图标设置了3次。我所做的是用一个按钮设置正确的视图,该按钮有一个指示错误的图像。我将该按钮与一个操作关联,该操作显示一个警告,告诉用户出了什么问题。我创建了一个助手函数,它通过一个动作将图像按钮添加到右视图中。
- (void)setErrorForTextField:(UITextField *)textField target:(id)target action:(SEL)selector
{
CGRect frame = CGRectMake(0.0, 0.0, 15.0, 28.0);
UIImage *image = [UIImage imageNamed:@"ErrorIcon.png"];
UIButton *button = [[[UIButton alloc] initWithFrame:frame] autorelease];
[button setImage:image forState:UIControlStateNormal];
button.backgroundColor = [UIColor clearColor];
[button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
textField.rightView = button;
textField.rightViewMode = UITextFieldViewModeAlways;
}
我的erroricon.png恰好是15x28,所以我将按钮设置为该大小。我确保按钮和图像适合文本字段,但是如果右视图太大,它会缩小。我把它设置到一个合适的大小,它不需要做任何缩放。
您可以使用上面代码中显示的模式隐藏和显示右视图。一种模式总是,另一种模式总是。您可能还需要探索其他模式。
现在,您可以在用户编辑完文本字段并根据需要设置错误时评估每个字段。我还有另一组匹配的验证,在处理表单时触发。我希望能够运行相同的代码进行验证,但我还没有走那么远。