iOS:禁止UITextView输入表情

-(void)textViewDidChange:(UITextView *)textView{
    
    NSRange textRange = [textView selectedRange];
    NSString *text = [self disable_emoji:[textView text]];
    [textView setText:text];
    [textView setSelectedRange:textRange];
}

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    
    //禁止苹果系统输入表情
    if ([[UITextInputMode currentInputMode].primaryLanguage isEqualToString:@"emoji"]) {
        
        return NO;
    }
    return YES;
}

#pragma mark - 使用正则表达式 - 将表情字符串替换为""
- (NSString *)disable_emoji:(NSString *)text{
    
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]"options:NSRegularExpressionCaseInsensitive error:nil];
    
    NSString *modifiedString = [regex stringByReplacingMatchesInString:text options:0 range:NSMakeRange(0, [text length]) withTemplate:@""];
    
    return modifiedString;
}

猜你喜欢

转载自blog.csdn.net/qq_15289761/article/details/106828698