美文网首页
iOS-UITextField对输入字符控制

iOS-UITextField对输入字符控制

作者: 小_黑_屋 | 来源:发表于2017-09-13 16:53 被阅读0次

    人一切的痛苦,本质上都是对自己的无能的愤怒。

    前两天因为TextField的长度控制和字符过滤搞得我是心力憔悴,这酸爽…… ,所以现在封装了一下对TextField的字符的控制
    demo地址: https://github.com/ChenBiaoHub/TextFieldControl

    效果演示(这里限制的输入长度是十位,不能输入表情)

    效果图

    解决问题

    • 系统自带输入法输入中文的时候,会先将拼音输入到输入框中,从而导致了长度限制出现问题
      • 如:在长度限制为10的输入框中,已经输入了9位,这时候还想输入“你”这个字,输入的时候还只输了一个n就输不出来了,导致我们输入的问题
    • 输入的时候对字符进行特殊的限制,如只能输入中文和数字等,不能输入 / 等特殊字符,或者对表情过滤等

    主要功能

    • 对输入框字符长度控制
    • 对输入框输入的文字过滤

    使用示例

    #import "ViewController.h"
    #import "NSString+CBTextField.h"
    @interface ViewController ()
    @property (weak, nonatomic) IBOutlet UITextField *testTextField;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        //注意 这里状态别写错了 使用的是 UIControlEventEditingChanged
        [self.testTextField addTarget:self action:@selector(textFieldChange:) forControlEvents:UIControlEventEditingChanged];
    }
    
    
    - (void)textFieldChange:(UITextField *)textField {
        
    //    //去除所有表情
    //    [NSString refuseOnlyEmojiTextField:textField TextLength:10];
    
    //    //去除所有特殊字符(只留 中文 数字 字母)
    //    [NSString refuseAllSpecialWorldTextField:textField TextLength:-1];
        
        //去除特殊字符(保留自己定义的)
        [NSString containSpecialWorld:@"-=,." TextField:textField TextLength:10];
    }
    @end
    

    写在后面的话

    • 因为目前遇到的情况有限,所有这个方法肯定有很多情况没考虑到,所以欢迎大家将遇到的问题在这里或者github提出来,以便改进项目,方便大家使用,谢谢大家咯!

    相关文章

      网友评论

          本文标题:iOS-UITextField对输入字符控制

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