ios中UITextfield中禁止输入Emoji

时间:2022-11-06 23:46:41

在iOS中,可以即使可以禁止使用Emoji键盘,但是也可以通过键盘打出Emoji,在实际开发中,可能需要在输入框中禁止使用输入Emoji,可以通过以下的方式来对输入内容进行过滤,

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    UITextField *searchTextField = [[UITextField alloc]initWithFrame:CGRectMake(50, 50, 200 , 25)];

    searchTextField.backgroundColor = [UIColor whiteColor];

    self.view.backgroundColor = [UIColor lightGrayColor];

    [searchTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

    [self.view addSubview:searchTextField];

}


- (void)textFieldDidChange:(UITextField *)textField {

    NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:@"[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]" options:0 error:nil];

    NSString *noEmojiStr = [regularExpression stringByReplacingMatchesInString:textField.text options:0 range:NSMakeRange(0, textField.text.length) withTemplate:@""];

    

    if (![noEmojiStr isEqualToString:textField.text]) {

        textField.text = noEmojiStr;

    }

}