Ich versuche, Emoji als Link zu verwenden.Wie fügt man NSLinkAttributeName zu Emoji hinzu?
Der obige Code verwandelt das Emoji in einen Link, aber das Emoji verschwindet.
Ich versuche, Emoji als Link zu verwenden.Wie fügt man NSLinkAttributeName zu Emoji hinzu?
Der obige Code verwandelt das Emoji in einen Link, aber das Emoji verschwindet.
Die Ursache für Ihr Problem kann sein:
NSMakeRange(0,1)
Viele Cocoa/Cocoa Touch APIs UTF-16 basierten Offsets & zählt verwenden.
Und die meisten Emojis sind aus zwei UTF-16 Code-Einheiten, einige andere 4 oder mehr.
Wenn Sie einen Bereich angibt, das erste Zeichen von emojiString.string
machen wollen, und es einen Link zu machen, können Sie so etwas schreiben müssen:
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)
}
Könnte es sein, weil die Emoji eine größere Länge hat: http://stackoverflow.com/questions/15775294/truncate-string-containing-emoji-or-unicode-characters-at-word-or-character-boun? – Larme