iOS UITextField 每4个字符插入一个空格

在实际开发中,我们偶尔会遇到要用户输入数字长串的情况,但是这个数字长串又不是像身份证号码一样各个部分的字段都是有意义的。这个时候我们为了让用户更好的检查已经输入完的字符串,可以在每隔一定个数的字符串加入一个空格。
要想知道用户在 UITextField 每一次的编辑情况,需要调用 UITextFieldDelegate- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; 进行监听。

UITextField 的配置:

UITextField *txtItem = [[UITextField alloc] initWithFrame:frame];
[txtItem setTextColor:kColorMain];
[txtItem setFont:kFontSize15];
[txtItem setKeyboardType:UIKeyboardTypeNumberPad];
[txtItem setDelegate:self];
[mainView addSubview:txtItem];

UITextFieldDelegate 的输入监听:

#pragma mark - UITextFieldDelegate
// 文本框编辑监听
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  
    // 每间隔4个字符插入一个空格并在删除时去掉
    NSMutableString *strmText = [NSMutableString stringWithString:textField.text];
    if ([textField.text length] == range.location) {
        
        // 插入
        if ([textField.text length]%5 == 4) {
            
            [strmText appendString:@" "];
        }
        
    } else {
        
        // 删除
        if ([textField.text length] && [textField.text length]%5 == 0) {
            
            strmText = [NSMutableString stringWithString:[strmText substringToIndex:strmText.length - 1]];
        }
    }
    textField.text = strmText;
    
    return YES;
}

运行结果:


结果图.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容