ユーザーが国際キーボードでユーザー名を入力できるようにする iOS 5 アプリケーションがあります。入力 (NSString *) に絵文字が含まれているかどうかを確認したい。
絵文字キーボードを無効にすることはできません (UIKeyboardTypeASCIICapable を使用すると、一部の国際キーボードが無効になります)。
私はこれを試し ました。ただし、これらのような一部の文字は検出されません。
この問題を解決する良い方法はありますか?
次の方法を使用して、iOS5およびiOS6の絵文字キーボードですべての絵文字を検出できました https://gist.github.com/4146056
https://github.com/woxtu/NSString-RemoveEmojiカテゴリを使用しますが、iOS 9.1 では上記の方法で認識されない絵文字が追加されていることに注意してください (特にこれらの絵文字:)。
修正:メソッド
return (0x1d000 <= codepoint && codepoint <= 0x1f77f);
内を次のように置き換えますisEmoji
return (0x1d000 <= codepoint && codepoint <= 0x1f77f) || (0x1F900 <= codepoint && codepoint <=0x1f9ff);
NSData *data = [yourstringofemo dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *goodValue = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if ([goodValue rangeOfString:@"\u"].location == NSNotFound)
{
goodvalue string contains emoji characters
}
else
{
goodvalue string does not contain emoji characters
}