效果 => 思路##
效果当输入银行卡号的时候用户每输入4位在textField中就会有一个空格
思路代码帮助客户输入空格,需要监听文本框的输入
在viewDidLoad
中监听添加文本框输入监听
@implementation WLBindCardController {
NSInteger _lastLength; ///< cardTextField最后的字符长度
}
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldChanged:) name:UITextFieldTextDidChangeNotification object:nil];
}
// 文本改变要调用的方法
- (void)textFieldChanged:(NSNotification *)n {
// 判断用户是输入还是删除
BOOL isIncreaseNumber = self.cardTextField.text.length > _lastLength;
_lastLength = self.cardTextField.text.length;
if (isIncreaseNumber) {
self.cardTextField.text = [self.cardTextField.text addTrimString];
}
}
这里用到了NSString的分类方法,是由自己添加的
/// 去掉字符串中的空格
- (instancetype)trimString {
return [self stringByReplacingOccurrencesOfString:@" " withString:@""];
}
/// 给字符串添加空格 例: 12345678 => 1234 5678
- (instancetype)addTrimString {
if (self.length == 0) return self;
NSString *trimStr = [self trimString];
NSMutableString *strM = [NSMutableString stringWithString:self];
if (trimStr.length > 2 && trimStr.length % 4 == 1) {
[strM insertString:@" " atIndex:self.length - 1];
return strM;
}
return self;
}
/** 字符串去空格补充
NSString *str = @" 王启镰 王俨 王迅 王朝 ";
// 去掉所有的空格
NSString *replaceStr = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
// 去掉前后的空格,字符串中间的空格依然存在
NSString *characterSetStr = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
*/