iOS-UITextField对输入字符控制

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

前两天因为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对输入字符控制)