2016-07-28 33 views
1

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.

+2

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

Antwort

0

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) 
} 
Verwandte Themen