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

标签 iphone ios

<分区>

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

执行此操作的最佳方法是什么。任何例子都会很有帮助。

最佳答案

创建一个包含文本字段、标签和验证 block 的新对象模型。 当textfield退出first responder时,调用block检查是否有效,如果不有效,显示label

类似这样的东西

@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];
    }
}

在你的 Controller 中

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

关于iPhone - 在 UITextfield 下方显示错误消息的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18510460/

相关文章:

ios - iOS 中的单例

iphone - 我在这个日期格式化程序中做错了什么

ios - Firebase 查询 - 查找包含字符串的子项目

iphone - 从 Html 创建 pdf

ios - NSManagedObjectContext-保存 : crashes when using NSPredicate

ios - 如何从不同的 TableView 刷新 TableView 中的数据

ios - Cordova iOS-生成应用错误65

iphone - 当页面被添加到桌面时,如何在 Mobile Safari 中管理通话结束行为?

ios - CollectionView 单元格在调整图像大小后需要更多时间来加载

ios - 如何从音频处理中锁定数组以进行分析