iPhone - 在UITextfield下显示错误消息的最佳方法是什么

时间:2013-08-29 12:02:23

标签: iphone ios

我有一个包含许多UITextfields的表单,如姓名,密码,电子邮件等等。在验证过程中,我想显示相应文本字段下方字段的错误消息。

这样做的最佳方法是什么。任何例子都会有所帮助。

1 个答案:

答案 0 :(得分:1)

创建一个包含文本字段,标签和验证块的新对象模型。 当文本字段重新响应第一个响应者时,调用该块以检查它是否有效,如果没有,则显示标签

像这样的东西

@protocol ValidationTextFieldDelegate

-(void) validationTextField:(ValidationTextField*)textField didResignWithResult:(BOOL)result;

@end

@interface ValidationTextField : NSObject <UITextFieldDelegate>

@property (nonatomic, strong) UITextField *textField;
@property (nonatomic, strong) UILabel *errorLabel;
@property (copy) void(^validationBlock)(BOOL);
@property (nonatomic, assign) id<ValidationTextFieldDelegate> delegate;

@end

@implementation ValidationTextField

-(void)textFieldDidEndEditing:(UITextField*)textField {
    BOOL result = self.validationBlock();

    self.errorLabel.hidden = result;

    if (self.delegate) {
        [self.delegate validationTextField:self didResignWithResult:result];
    }
}

在您的控制器中

-(void) validationTextField:(ValidationTextField*)textField didResignWithResult:(BOOL)result {
    if (!result) {
        int yOffset = textField.errorLabel.bounds.size.height;

        // Update here the frames of your other textfields, adding the yOffset to their frames
    }
}