美文网首页iOS 学习
禁止UITextView输入表情

禁止UITextView输入表情

作者: 零粹 | 来源:发表于2019-01-17 15:23 被阅读0次

    禁止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;
    }
    

    相关文章

      网友评论

        本文标题:禁止UITextView输入表情

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