首页 > 系统 > iOS > 正文

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

2020-07-26 02:32:37
字体:
来源:转载
供稿:网友

输入框显示银行卡格式,即为每隔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 显示银行卡格式的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表