输入框显示银行卡格式,即为每隔4位出现一个空格,
下面使用UITextFieldDelegate,编码实现:
首先引用使用代理
1
2
|
类名 ()< UITextFieldDelegate > self.textField.delegate = self; |
使用代理方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
- (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 显示银行卡格式的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/qq_36478920/article/details/78316793