MSTextField 1.0.0

MSTextField 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

未知维护。



  • Mason Silber

MSTextField 是一个 UITextField 子类,允许开发者在实例变量中传入自定义格式化和验证块。它具有最小验证长度参数(以便您的文本字段不会尝试验证空白输入)和最大长度参数(以防止用户输入比所需更长的内容)。您还可以设置验证图像、无效输入警告边框颜色为任何您想要的(默认分别为绿色勾选符和深红色)。

要使用它,只需将 MSTextField 添加到您的项目中!

以下是一个使用示例,取自创建处理日期(月和日)的文本字段的工厂方法之一:

MSTextField *dateField = [[MSTextField alloc] initWithFrame:frame];
dateField.placeholder = @"Enter date";
dateField.keyboardType = UIKeyboardTypeNumberPad;
dateField.maxLengthOfInput = 5;
dateField.formattingBlock = ^(MSTextField *textField, char newCharacter) {
    if (newCharacter == '\b') {
        if ([textField.text length] == 3) {
            textField.text = [textField.text substringToIndex:2];
        }
    } else {
        if ([textField.text length] == 2) {
            textField.text = [NSString stringWithFormat:@"%@/", textField.text];
        }
    }
};
dateField.verificationBlock = ^BOOL(NSString *text) {

    if ([text length] != 5) {
        return NO;
    }
    return NSLocationInRange([[text substringToIndex:2] intValue], NSMakeRange(1, 12));
};

如上图所示,格式化块在输入第二个字符后自动添加斜杠,验证块则检查字符串是否为正确长度,月份组件是否为有效月份。

此外,MSTextField 还提供了一种名为 MSTextFieldDelegate 的 UITextFieldDelegate 子类,该子类提供了可实现的额外可选代理方法。

- (void)textFieldReceivedValidInput:(MSTextField *)textField;
- (void)textFieldReceivedInvalidInput:(MSTextField *)textField;

就是这么简单!MSTextField 提供了生成日期字段(如上所示)、电话号码字段、电子邮件地址字段和信用卡字段的类方法。然而,您始终可以创建自己的字段,并用这些方法作为示例。

在示例文件夹中有一个非常简单的应用程序,包含一个 UISegmentedControl,您可以切换到不同的示例字段进行试验。如果您有任何问题,请随时通过电子邮件[email protected]联系我。祝您好运!