【问题标题】:IOS NSCharacterSet for emoji and latin charactersIOS NSCharacterSet 用于表情符号和拉丁字符
【发布时间】:2016-04-11 21:22:39
【问题描述】:

我正在尝试将文本用户输入限制为拉丁/英语字符和表情符号。

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

我尝试在我的输入视图上使用键盘类型 ASCIICapable,但是我没有收到表情符号输入。

【问题讨论】:

标签: ios emoji nscharacterset


【解决方案1】:

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

表情符号字符基本上在 \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

【讨论】:

  • 谢谢rmaddy,这正是我需要的。
【解决方案2】:

rmaddy 的 Swift 等价物在 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 & Pictographs 下的 http://www.unicode.org/charts/ 上找到表情符号的 Unicode 范围的完整列表。

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 2013-03-25
    • 2015-07-09
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 2014-09-24
    相关资源
    最近更新 更多