iOS UITextField 显示银行卡格式的方法

时间:2021-05-20

输入框显示银行卡格式,即为每隔4位出现一个空格,

下面使用UITextFieldDelegate,编码实现:

首先引用使用代理

类名 ()<UITextFieldDelegate>self.textField.delegate = self;

使用代理方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if (textField == self.contentTextField) { // 4位分隔银行卡卡号 NSString *text = [textField text]; NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789\b"]; string = [string stringByReplacingOccurrencesOfString:@" " withString:@""]; if ([string rangeOfCharacterFromSet:[characterSet invertedSet]].location != NSNotFound) { return NO; } text = [text stringByReplacingCharactersInRange:range withString:string]; text = [text stringByReplacingOccurrencesOfString:@" " withString:@""]; NSLog(@"%@",text);// text为输入框内的文本,没有“ ”的内容 NSString *newString = @""; while (text.length > 0) { NSString *subString = [text substringToIndex:MIN(text.length, 4)]; newString = [newString stringByAppendingString:subString]; if (subString.length == 4) { newString = [newString stringByAppendingString:@" "]; } text = [text substringFromIndex:MIN(text.length, 4)]; } newString = [newString stringByTrimmingCharactersInSet:[characterSet invertedSet]]; if ([newString stringByReplacingOccurrencesOfString:@" " withString:@""].length >= 21) { return NO; } [textField setText:newString]; return NO; } return YES;}

使用以上方法即可实现UITextField 显示银行卡格式。

这篇iOS UITextField 显示银行卡格式的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章