【问题标题】:individual Emoji Symbols Separated into Three Symbols [duplicate]单独的表情符号符号分成三个符号[重复]
【发布时间】:2017-07-15 02:37:53
【问题描述】:

如果您启动 TextEdit 并在 Edit 下选择 Emoji & Symbols,您将在 Smileys 和 People 下获得 291 个符号列表强>塞拉(macOS 10.12)。我想用NSCollectionView 列出所有这 291 个表情符号。现在,我有一个由 291 个表情符号组成的字符串。我将它们分开以创建一个数组,如下所示。

class SmileyViewController: NSViewController, NSCollectionViewDelegate, NSCollectionViewDataSource {
    // MARK: - Variables
    var emojiArray = [String]()

    override func viewDidLoad() {
        super.viewDidLoad()

        let emojiString = "????????????????????????????????..." // 291 symbols
        emojiArray = emojiString.characters.map { String($0) }
        print(emojiArray.count) // 408, not 291
        collectionView.reloadData()
    }
}

运行上面的代码,我得到的数组实际上包含 408 个符号。如果我仔细观察,他们中的一些人将自己分成三个符号。例如,一个名为 ma​​n with blonde hair 的符号将自己变成三个符号。其中之一是性别符号。 this topic 建议单个表情符号可能是几个或多个符号的组合。我可以做些什么来将这个包含 291 个符号的特定字符串分成一个包含 291 个符号的数组吗?谢谢。

【问题讨论】:

    标签: swift macos emoji nscollectionview


    【解决方案1】:

    使用表情符号创建集合视图的更好方法是使用它们的 unicode 字符。 https://apps.timwhitlock.info/emoji/tables/unicode 列出了可用的表情符号。我使用的一种实现是我的答案:Emoji Picker Ios Swift

    【讨论】:

      【解决方案2】:

      这种行为实际上是意料之中的。在 swift 3.0 中,表情符号不计入字素簇。许多表情符号实际上是由零与连接符连接的单个表情符号序列。所以character 属性实际上是给你所有的单一表情符号。这就是为什么您从 291 个顶级表情符号

      中获得 408 个单个表情符号的原因

      在 swift 4 中,emoji 字符串的这种行为得到了改进很多。在 swift 4 中,您可以直接调用 count 到您的 emoji 字符串,结果将得到 291

      有关此主题的更多信息,请查看here

      【讨论】:

      • 我不是在问为什么会这样。你为什么要给我指一个我自己提到的话题?
      猜你喜欢
      • 2016-01-12
      • 1970-01-01
      • 2014-03-27
      • 2021-10-02
      • 2019-07-11
      • 2016-03-22
      • 2020-03-06
      • 1970-01-01
      • 2018-03-03
      相关资源
      最近更新 更多