iOS 输入框每四位添加一个空格,输出的时候去掉空格

       最近由设计,交互的同事提出需求,对现有的APP进行UI,交互的设计进行规范化统一风格,所以在涉及到输入身份证,银行卡等位数比较多的输入框时,提出每四位添加一个空格,这样的输入交互方便用户输入完成以后进行检查。

       此方法对输入框没什么限制,不管是xib拉出来的也好,还是自己手写的输入框,都可以使用方法也比较简单。上代码,使用输入 textField 的 delegate :

- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string{

      if(textField) {

            self.textField.text = [AddSpaceTool stringWithText:textField.text rangString:string];

        }

     returnYES;

}


-(void)textFieldDidEndEditing:(UITextField*)textField{

     [textField resignFirstResponder];

      NSLog(@" -----%@",[AddSpaceTool removeSpaceWithString:textField.text]);

}

下面是 AddSpaceTool 这个类里面的内容:

.h

#import

@interfaceAddSpaceTool :NSObject

+ (NSString*)stringWithText:(NSString*)text rangString:(NSString*)rangString;

+ (NSString*)removeSpaceWithString:(NSString*)string;

@end

.m

#import"AddSpaceTool.h"

@implementationAddSpaceTool

+ (NSString*)stringWithText:(NSString*)text rangString:(NSString*)rangString{

    //每四位加一个空格

   if([rangString isEqualToString:@""]) {//删除空格

       if((text.length-2) %5==0) {

          text = [text substringToIndex:(text.length-1)];

       }

   }else{

       if(text.length%5==0) {

          text = [NSString stringWithFormat:@"%@ ",text];  

       }

   }

 return text;

}

+ (NSString*)removeSpaceWithString:(NSString*)string{

   NSString*lastString;

   if([stringrangeOfString:@" "].location!=NSNotFound) {

        lastString = [stringstringByReplacingOccurrencesOfString:@" "withString:@""];

   }else{

       lastString = string;

   } 

   return lastString;

}

@end

是不是很简单啊?!

然后就这样就实现了在身份证,银行卡的输入框中每四位添加一个空格的需求了。

很高兴这篇文章能帮到您!

推荐阅读更多精彩内容