swift – NSAttributedString和emojis:位置和长度问题
发布时间:2020-12-14 05:32:15 所属栏目:百科 来源:网络整理
导读:我正在使用NSAttributedString为来自API的文本的某些部分(在Twitter上认为“@mention”)着色. API为我提供了文本和一组实体,这些实体表示应该着色的文本部分(或链接,标签等). 但有时,由于表情符号,颜色会被抵消. 例如,使用此文本: “@ericd Some text. @ape
我正在使用NSAttributedString为来自API的文本的某些部分(在Twitter上认为“@mention”)着色.
API为我提供了文本和一组实体,这些实体表示应该着色的文本部分(或链接,标签等). 但有时,由于表情符号,颜色会被抵消. 例如,使用此文本:
API给出:
我使用NSRange成功转换为NSAttributedString: for m in entities.mentions { let r = NSMakeRange(m.pos,m.len) myAttributedString.addAttribute(NSForegroundColorAttributeName,value: someValue,range: r) } 我们看到“pos”:18是正确的,这是“@apero”开始的地方.正如预期的那样,彩色部分是“@ericd”和“@apero”. 但是当在文本中使用表情符号的某些特定组合时,API不能很好地转换为NSATtributedString,颜色是偏移的:
|