CHRTextFieldFormatter 1.0.1

CHRTextFieldFormatter 1.0.1

测试测试
语言语言 Obj-CObjective C
许可证 MIT
发布的最新发布2016年5月

Dmitry Nesterenko 维护。



  • 编者:
  • chebur

CHRTextFieldFormatter 允许您为 UITextField 实例应用输入掩码。

特性

  • 不会静音复制/剪切/粘贴事件。
  • 正确计算光标位置。
  • 无需从 UITextField 继承。
  • 提供 CHRTextMask 接口,以允许自定义文本掩码算法实现。
  • 继承自 NSFormatter

实现掩码

提供两种掩码类型:

  • CHRPhoneNumberMask 用于应用手机号码掩码。
  • CHRCardNumberMask 用于应用信用卡号码掩码。

手机号码掩码

手机号码掩码可以配置为具有不可删除的前缀。例如:

    CHRPhoneNumberMask *mask = [CHRPhoneNumberMask new];
    mask.prefix = @"+7";

安装

*.h*.m 文件拖到您的项目中。

用法

- (void)viewDidLoad {
    [super viewDidLoad];

    self.phoneNumberFormatter = [[CHRTextFieldFormatter alloc] initWithTextField:self.phoneNumberTextField mask:[CHRPhoneNumberMask new]];
    self.cardNumberFormatter = [[CHRTextFieldFormatter alloc] initWithTextField:self.cardNumberTextField mask:[CHRCardNumberMask new]];
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if (textField == self.phoneNumberTextField) {
        return [self.phoneNumberFormatter textField:textField shouldChangeCharactersInRange:range replacementString:string];
    } else if (textField == self.cardNumberTextField) {
        return [self.cardNumberFormatter textField:textField shouldChangeCharactersInRange:range replacementString:string];
    } else {
        return YES;
    }
}

运行示例项目以查看演示。