我试着用表情符号作为链接。
emojiString.addAttribute(NSLinkAttributeName, value: "https://www.google.com/" , range: NSMakeRange(0,1))
上面的代码将表情符号转换为链接,但表情符号将消失。
最佳答案
问题的原因可能是:
NSMakeRange(0,1)
许多Cocoa/Cocoa Touch api使用基于UTF-16的偏移量和计数。
大多数emojis是由2个UTF-16代码单元组成的,有些则是4个或更多。
如果要创建一个范围来指示
emojiString.string
的第一个字符,并使其成为一个链接,则可能需要编写如下内容:if let ch = emojiString.string.characters.first {
let range = NSRange(0..<String(ch).utf16.count)
emojiString.addAttribute(NSLinkAttributeName, value: "https://www.google.com/" , range: range)
}