欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-12-19 12:11:34
输入框显示银行卡格式,即为每隔4位出现一个空格, 下面使用uitextfielddelegate,编码实现: 首先引用使用代理 类名 ()

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

上一篇:

下一篇: