表情符号和拉丁字符的IOS NSCharacterSet

时间:2016-04-11 21:22:40

标签: ios emoji nscharacterset

我试图将文字用户输入限制为拉丁/英文字符和表情符号。

是否可以创建包含所有这些字符的NSCharacterSet?

我尝试在输入视图中使用键盘类型ASCIICapable,但后来我没有输入表情符号。

2 个答案:

答案 0 :(得分:5)

没有内置任何东西来创建这样一个特定的字符集。你必须按角色范围自己做。

表情符号字符基本上在\ U1F300 - \ U1F6FF范围内。我想其他一些人分散了。

使用NSMutableCharacterSet构建您需要的内容。

NSMutableCharacterSet *aCharacterSet = [[NSMutableCharacterSet alloc] init];
[aCharacterSet addCharactersInRange:NSMakeRange(0x1F300, 0x1F700 - 0x1F300)]; // Add most of the Emoji characters
[aCharacterSet addCharactersInRange:NSMakeRange('A', 'Z'-'A'+1)]; // Add uppercase
[aCharacterSet addCharactersInRange:NSMakeRange('a', 'z'-'a'+1)]; // Add lowercase

答案 1 :(得分:1)

快速相当于 rmaddy 的答案,在CharacterSet中添加范围:

var aCharacterSet = CharacterSet()
aCharacterSet.insert(charactersIn: "\u{1F300}"..<"\u{1F700}") // Add most of the Emoji characters
aCharacterSet.insert(charactersIn: "A"..."Z") // Add uppercase
aCharacterSet.insert(charactersIn: "a"..."z") // Add lowercase

此外,您还可以在 Emoji&amp;上的http://www.unicode.org/charts/上找到表情符号的Unicode范围的完整列表。象形