收集了iOS9.2的所有emoji字符,禁止UITextView和UITextField的emoji字符输入。
#import <Foundation/Foundation.h>
@interface StringUtils : NSObject
+ (void) deleteEmojiForTextView:(UITextView *)textView;
+ (void) deleteEmojiForTextField:(UITextField *)textField;
@end
#import "StringUtils.h"
@implementation StringUtils
#define EMOJI @"...";//表情符号参考附件
+ (void) deleteEmojiForTextView:(UITextView *)textView
{
NSString *string = textView.text;
if(![self stringContainsEmoji:string]){
return;
}
__block NSString *noEmoji = string;
[string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:
^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
NSString *emojiEmotions = EMOJI;
if([emojiEmotions rangeOfString:substring].location!=NSNotFound){
noEmoji = [noEmoji stringByReplacingOccurrencesOfString:substring withString:@""];
}
}];
textView.text = noEmoji;
}
+ (void) deleteEmojiForTextField:(UITextField *)textField
{
NSString *string = textField.text;
if(![self stringContainsEmoji:string]){
return;
}
__block NSString *noEmoji = string;
[string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:
^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
NSString *emojiEmotions = EMOJI;
if([emojiEmotions rangeOfString:substring].location!=NSNotFound){
noEmoji = [noEmoji stringByReplacingOccurrencesOfString:substring withString:@""];
}
}];
textField.text = noEmoji;
}
+ (BOOL)stringContainsEmoji:(NSString *)string
{
__block BOOL returnValue = NO;
//__block NSString *noEmoji = string;
[string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:
^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
//const unichar hs = [substring characterAtIndex:0];
NSString *emojiEmotions = EMOJI;
// NSLog(@"size=%ld",emojiEmotions.length);
// NSLog(@"size2=%d",strlen([emojiEmotions UTF8String]));
// NSLog(@"sub=%@",substring);
if([emojiEmotions rangeOfString:substring].location!=NSNotFound){
NSLog(@"===>>>>>emoji");
returnValue = YES;
*stop = YES;
}
}];
return returnValue;
}
@end
原创文章,转载请注明出处。