輸入框顯示銀行卡格式,即為每隔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 顯示銀行卡格式的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答