最近由设计,交互的同事提出需求,对现有的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
是不是很简单啊?!
然后就这样就实现了在身份证,银行卡的输入框中每四位添加一个空格的需求了。
很高兴这篇文章能帮到您!
网友评论