UITextField空格输入

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]];
*/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容