UITextField空格输入

作者: 倚楼听风雨wing | 来源:发表于2016-07-05 11:10 被阅读366次
    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]];
    */
    

    相关文章

      网友评论

        本文标题:UITextField空格输入

        本文链接:https://www.haomeiwen.com/subject/udyhjttx.html