您的当前位置:首页正文

UITextField空格输入

2024-12-15 来源:东饰资讯网
textField.gif

效果 => 思路##

效果当输入银行卡号的时候用户每输入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]];
*/
显示全文