700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 关于iOS禁止输入表情符号

关于iOS禁止输入表情符号

时间:2020-04-01 06:05:49

相关推荐

关于iOS禁止输入表情符号

这种需求一般是聊天服务器遇到,因为这些表情符号可能会造成服务器无法解析,造成乱码的情况,

所以一般在客户端就禁止输入一些苹果自带的表情符号,例如下图:

这时我们需要禁用表情,一般的做法有将表情符号替换成空字符,或者,在输入的时候,就不让输入,在此我选用第二种,因为不需要太多的操作。

具体做法不多BB直接上图和代码:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)rangereplacementText:(NSString *)text {NSLog(@"emoji:%@",text);if ([@"\n" isEqualToString:text] == YES) {[self.view endEditing:NO];return NO;}else{if ([self stringContainsEmojiLast:text]) {return NO;}else{return YES;}return YES;}}//判断是否有emoji-(BOOL)stringContainsEmojiLast:(NSString *)string {__block BOOL returnValue = NO;//九宫格 汉字 获取到的是圈123这样的//要可以输入if ([string isEqualToString:@"➋"]||[string isEqualToString:@"➌"]||[string isEqualToString:@"➍"]||[string isEqualToString:@"➎"]||[string isEqualToString:@"➏"]||[string isEqualToString:@"➐"]||[string isEqualToString:@"➑"]||[string isEqualToString:@"➒"]) {return returnValue;}[string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {const unichar high = [substring characterAtIndex: 0];// Surrogate pair (U+1D000-1F9FF)if (0xD800 <= high && high <= 0xDBFF) {const unichar low = [substring characterAtIndex: 1];const int codepoint = ((high - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;if (0x1D000 <= codepoint && codepoint <= 0x1F9FF){returnValue = YES;}// Not surrogate pair (U+2100-27BF)} else {if (0x2100 <= high && high <= 0x27BF){returnValue = YES;}}}];return returnValue;}

最后友情提醒下,想要获取到表情键盘模式,禁止输入的朋友,汉字里边打出一些特别的词语,还是可以选在表情符号的,例如“哈哈”,这样还是要在输入里处理;

并且

[[[UITextInputMode currentInputMode] primaryLanguage] isEqualToString:@"emoji"]

在7.0已经弃用了哦,

最好还是按上边的截图去处理表情符号禁止输入.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。