iOS 设置不能输入表情符号

- (BOOL)stringContainsEmoji:(NSString*)string

{

    __blockBOOLreturnValue =NO;


    [stringenumerateSubstringsInRange:NSMakeRange(0, [string length])

                               options:NSStringEnumerationByComposedCharacterSequences

                            usingBlock:^(NSString*substring,NSRangesubstringRange,NSRangeenclosingRange,BOOL*stop) {

                                constunicharhs = [substringcharacterAtIndex:0];

                                if(0xd800<= hs && hs <=0xdbff) {

                                    if(substring.length>1) {

                                        constunicharls = [substringcharacterAtIndex:1];

                                        constintuc = ((hs -0xd800) *0x400) + (ls -0xdc00) +0x10000;

                                        if(0x1d000<= uc && uc <=0x1f77f) {

                                            returnValue =YES;

                                        }

                                    }

                                }elseif(substring.length>1) {

                                    constunicharls = [substringcharacterAtIndex:1];

                                    if(ls ==0x20e3) {

                                        returnValue =YES;

                                    }

                                }else{

                                    if(0x2100<= hs && hs <=0x27ff) {

                                        returnValue =YES;

                                    }elseif(0x2B05<= hs && hs <=0x2b07) {

                                        returnValue =YES;

                                    }elseif(0x2934<= hs && hs <=0x2935) {

                                        returnValue =YES;

                                    }elseif(0x3297<= hs && hs <=0x3299) {

                                        returnValue =YES;

                                    }elseif(hs ==0xa9|| hs ==0xae|| hs ==0x303d|| hs ==0x3030|| hs ==0x2b55|| hs ==0x2b1c|| hs ==0x2b1b|| hs ==0x2b50) {

                                        returnValue =YES;

                                    }

                                }

                            }];


    returnreturnValue;

}


- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string{



    //仅支持数值字母汉字

    BOOLret =YES;

    for(inti=0; i

        NSString* subStr = [stringsubstringWithRange:NSMakeRange(i,1)];

        if([selfisValidInput:subStr]==NO) {

            ret =NO;

        }

    }

    returnret;

}


-(BOOL)isValidInput:(NSString*)str

{

    NSString* match = @"^[A-Za-z0-9-+/=_➋➌➍➎➏➐➑➒\u4e00-\u9fa5]+$";

    NSPredicate*predicate = [NSPredicatepredicateWithFormat:@"SELF matches %@", match];

    return[predicateevaluateWithObject:str];

}

你可能感兴趣的:(iOS 设置不能输入表情符号)