人一切的痛苦,本质上都是对自己的无能的愤怒。
前两天因为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提出来,以便改进项目,方便大家使用,谢谢大家咯!