美文网首页
银行卡号分割

银行卡号分割

作者: Luyc_Han | 来源:发表于2018-10-29 16:59 被阅读16次
    image.png
    //
    //  DemoTextFiled.m
    //  CaseDemo
    //
    //  Created by xxx on 2018/10/29.
    //  Copyright © 2018 Mr.H. All rights reserved.
    //
    
    #import "DemoTextFiled.h"
    
    @interface DemoTextFiled ()
    /** <#statements#> */
    @property (nonatomic,assign) NSUInteger separatedInterval;
    @end
    
    @implementation DemoTextFiled
    
    - (instancetype)init
    {
        self = [super init];
        if (self) {
            self.separatedInterval = 4;
            // 利用KVO 监听TextFeild的输入变化,但是当文字变化时,观测者没有响应,
            //只用当 textField.text = @"1234" 的时候,才会响应
            [self addObserver:self forKeyPath:@"text" options:NSKeyValueObservingOptionNew context:nil];
            //这个是每当TextFeild的输入变化时,会响应
            [self addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventAllEditingEvents];
        }
        return self;
    }
    
    -(void)valueChanged:(UITextField*)tf{
        UITextRange * editRange = self.selectedTextRange;
        if ((tf.text != nil) && (tf.text.length>self.separatedInterval) ) {
            NSMutableAttributedString * string =[[NSMutableAttributedString alloc]initWithString:tf.text];
            for (int i = 1; i < tf.text.length; i ++) {
                if ( i %self.separatedInterval == 0) {
                    [string addAttribute:NSKernAttributeName
                                   value:[NSNumber numberWithFloat:10.f]
                                   range:NSMakeRange(i-1, 1)];  
                }
            }
            self.attributedText = string;
            self.selectedTextRange = editRange;
        }
    }
    @end
    

    相关文章

      网友评论

          本文标题:银行卡号分割

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