UITextView UITextField 检测并过滤Emoji表情符号
将苹果键盘的Emoji表情符号过滤掉。
通过研究和测试,得到以下比较完美的解决方案,思路两条:
1.当用户切换键盘为Emoji表情时,输入的表情不响应(即表情符号不显示到UITextView或UITextField)。这里可以通过UITextView或UITextField的回调和是否为emoji键盘:
[[[textView textInputMode] primaryLanguage] isEqualToString:@"emoji"];
2.当用户通过中文键盘输入中文“哈哈”后出现可选文字中选中的Emoji笑脸,最后统一通过检查最终字符串textField.text的内容,通过Emoji筛unicode编码来判断是否存在Emoji表情,如果存在则提醒用户做修改。
主要的代码如下:
#pragma mark - TextView Delegate 限制字数、限制表情
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
//如果允许继续输入,那么返回YES,否则返回NO
//如果输入超过规定的字数140,就不再让输入
// 不让输入表情
if ([textView isFirstResponder]) {
if ([[[textView textInputMode] primary