如何将NSLinkAttributeName添加到表情符号?

时间:2016-07-28 22:49:28

标签: ios swift hyperlink emoji nsmutableattributedstring

我正在尝试使用表情符号作为链接。

emojiString.addAttribute(NSLinkAttributeName, value: "https://www.google.com/" , range: NSMakeRange(0,1))

上面的代码将表情符号转换为链接,但表情符号将消失。

1 个答案:

答案 0 :(得分:0)

您的问题的原因可能是:

NSMakeRange(0,1)

许多Cocoa / Cocoa Touch API使用基于UTF-16的偏移量&计数。

大多数表情符号由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)
}