UITextField

1.监听输入(eg.只能是最多6位数字)

<UITextFieldDelegate>
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    //string的length为0表示删除
//    if (textField.text.length + string.length > 6) {
//        return NO;
//    }
    //处理可能存在的粘贴情况
    //先将用户输入、粘贴的string进行处理,提取出其中的数字
    //根据用户输入的range,将提取出的数字放入textfield原本的string中
    //剪切得到的string为小于6位,并赋值给textfield
    //最后要return NO,否则textfield会出现没有经过限制的内容
    NSString *limitStr = @"0123456789";
    NSMutableString *strToShowFromString = [[NSMutableString alloc] init];
    for (int i = 0; i < string.length; i++) {
        NSString *tempStr = [string substringWithRange:NSMakeRange(i, 1)];
        if ([limitStr containsString:tempStr]) {
            [strToShowFromString appendString:tempStr];
        }
    }
    NSString *tempStr1 = [textField.text substringWithRange:NSMakeRange(0, range.location)];
    NSString *tempStr2 = [textField.text substringWithRange:NSMakeRange(range.location + range.length, textField.text.length - range.location - range.length)];
    NSString *strToShow = [NSString stringWithFormat:@"%@%@%@", tempStr1, strToShowFromString, tempStr2];
    if (strToShow.length > 6) {
        strToShow = [strToShow substringWithRange:NSMakeRange(0, 6)];
    }
    textField.text = strToShow;
    return NO;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容