`

iOS9之全面禁止emoji输入

阅读更多

        收集了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

 

原创文章,转载请注明出处。

分享到:
评论

相关推荐

    iOS风格3000多个Emoji表情PNG图片

    iOS系统的Emoji因其独特的设计风格和广泛的应用而备受喜爱。本资源提供的是一个包含3184个不同Emoji的PNG图片集合,这些图片以iOS的风格呈现,尺寸为72x72像素,具有清晰度高、色彩丰富的特点,适用于多种场景下的...

    android 输入框EditText禁止输入Emoji表情符

    总的来说,禁止EditText输入Emoji表情符主要涉及到字符的Unicode检测、监听输入事件以及可能的正则匹配。在实际开发中,可以根据项目需求和性能考虑选择合适的方法。同时,也要注意,禁用Emoji输入可能会降低用户...

    IOS Emoji 编码提取

    在iOS平台上,Emoji是一种广泛使用的表情符号,它们不仅在短信、邮件和其他文本输入场景中常见,也在各种应用程序中被用于增强用户体验。这个“IOS Emoji 编码提取”项目旨在帮助开发者方便地获取并共享iOS系统中的...

    Android处理emoji 互通iOS

    Android 4.4(KitKat)及之后的版本开始支持Unicode 6.0的emoji,而Android 6.0(Marshmallow)开始全面支持Unicode 7.0和8.0的emoji。然而,不同的Android设备可能由于制造商定制的系统字体不同,导致emoji显示不...

    iOS下的开源Emoji键盘

    总的来说,AGEmojiKeyboard为iOS开发者提供了一个高效、灵活的工具,帮助他们在应用中构建出与系统原生键盘相媲美的Emoji输入体验。无论你是想为社交应用增加趣味性,还是希望在教育应用中引入更多互动元素,...

    iOS emoji大全 plist文件

    iOS emoji大全 plist文件

    ios-图文混排之解析Emoji.zip

    "ios-图文混排之解析Emoji.zip"这个资源包提供了解决这一问题的解决方案,它包含了自定义的解析工具类,能够将带有Emoji的文本消息解析为富文本,以便在UILabel和UITextView中正确地显示。 首先,我们要理解的是,...

    IOS8 细黑字体+EMOJI超大表情

    在iOS系统中,字体和表情符号(EMOJI)是用户界面的重要组成部分,尤其是在iOS8版本中,苹果公司对这两方面进行了更新,提升了用户的交互体验。这篇内容将深入探讨iOS8中的“细黑字体”与“EMOJI超大表情”,以及...

    ios开发emoji编码对应的plist文件

    在iOS开发中,Emoji是一种广泛使用的图形表情符号,它们在应用程序和系统中为用户提供了一种直观、生动的交流方式。由于iOS系统是基于Apple的Unicode标准实现的,因此每个Emoji实际上都有一个对应的Unicode编码。本...

    Android输入Emoji表情的demo

    在Android开发中,为用户提供丰富的输入体验是至关重要的,其中包括支持输入Emoji表情。"Android输入Emoji表情的demo"是一个示例项目,展示了如何在EditText组件中集成和显示Emoji表情,使得用户可以在输入文本的...

    emoji图片和编码表

    在提供的文件`ios_emoji2012-05-17.sql`中,很可能是包含了当时苹果iOS系统emoji数据库的一个快照,可能包含了emoji的Unicode码点、对应的数据库ID以及其他相关信息,这对于分析早期iOS系统的emoji实现和演化非常有...

    ios-emoji表情.zip

    最近刚把emoji表情整理完,这里是我的一些自己的心得。开始做的时候,我是通过Unicode对emoji的表情一个一个的读取,但有些表情他们分布的比较乱,而且对应有的是两个Unicode组合而成(比如国旗),在转换之间会挺...

    让 Intellij 支持 Emoji 输入提醒.zip

    然而,对于喜欢使用Emoji来增强代码注释或文本表达的人来说,IntelliJ IDEA默认并不直接支持Emoji输入。为了实现这一功能,我们可以借助开源项目中的插件来实现,如这个名为"emoji-master"的压缩包所包含的插件。 ...

    iOS 表情类 Emoji.zip

    iOS 表情类 Emoji ,Emoji 是一个用来快速访问各种表情图片的类,类包含静态方法可直接返回表情的字符串。

    emoji表情web处理

    iOS和Android设备用户在输入时会使用各自平台特定的emoji表情符号,这些符号在不同的操作系统和浏览器上可能显示不一致,因此在Web端处理emoji就显得尤为重要。本教程将详细介绍如何使用JavaScript来处理iOS和...

    Android限制Edittext输入Emoji表情符

    然而,有时候开发者可能需要对用户的输入进行特定的限制,比如只允许输入数字、字母或者禁止输入特定字符,例如Emoji表情符号。本篇文章将深入探讨如何在Android中实现`EditText`限制输入Emoji表情符的功能。 首先...

    emoji-data-ios:iOS缺少的Emoji库:red_heart:基于emoji-data

    表情符号数据iOS例要运行示例项目,请克隆存储库,然后首先从Example目录运行pod install 。要求Xcode 10和Swift 4.2安装emojidataios可通过。 要安装它,只需将以下行添加到您的Podfile中: pod "emojidataios"如何...

    iOS中判断Emoji表情问题

    Emoji 是一套起源于日本的12×12像素表情符号,由栗田穣崇(Shigetaka Kurit)创作,最早在日本网络及手机用户中流行,自苹果公司发布的iOS 5输入法中加入了emoji后,这种表情符号开始席卷全球,目前emoji已被大多数...

Global site tag (gtag.js) - Google Analytics