如何将 NSLinkAttributeName 添加到表情符号?
How to add NSLinkAttributeName to emoji?
我正在尝试将表情符号用作 link。
emojiString.addAttribute(NSLinkAttributeName, value: "https://www.google.com/" , range: NSMakeRange(0,1))
上面的代码将表情符号变成 link,但表情符号会消失。
您的问题的原因可能是这样的:
NSMakeRange(0,1)
许多 Cocoa/Cocoa Touch API 使用基于 UTF-16 的偏移量和计数。
大多数表情符号由 2 个 UTF-16 代码单元组成,有些是 4 个或更多。
如果你想做一个范围表示emojiString.string
的第一个字符,并且使它成为link,你可能需要这样写:
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)
}
我正在尝试将表情符号用作 link。
emojiString.addAttribute(NSLinkAttributeName, value: "https://www.google.com/" , range: NSMakeRange(0,1))
上面的代码将表情符号变成 link,但表情符号会消失。
您的问题的原因可能是这样的:
NSMakeRange(0,1)
许多 Cocoa/Cocoa Touch API 使用基于 UTF-16 的偏移量和计数。
大多数表情符号由 2 个 UTF-16 代码单元组成,有些是 4 个或更多。
如果你想做一个范围表示emojiString.string
的第一个字符,并且使它成为link,你可能需要这样写:
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)
}