虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > IOS编程/Objective-C > iOS UITextField 显示银行卡格式的方法

iOS UITextField 显示银行卡格式的方法
类别:IOS编程/Objective-C   作者:码皇   来源:互联网   点击:

下面小编就为大家分享一篇iOS UITextField 显示银行卡格式的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

您可能感兴趣的文章:

  • iOS 中 使用UITextField格式化银行卡号码的解决方案
  • iOS UITextField最大字符数和字节数的限制详解
相关热词搜索: iOS UITextField 银行卡 格式