2016-07-28 2 views
1

私は絵文字をリンクとして使用しようとしています。絵文字にNSLinkAttributeNameを追加するには?

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

上記のコードは絵文字をリンクにしますが、絵文字は消えます。

+2

はそれができる:あなたがemojiString.stringの最初の文字を示す範囲を作り、それにリンクを作成する場合

、あなたはこのような何かを書く必要があります。 http://stackoverflow.com/questions/15775294/truncate-string-containing-emoji-or-unicode-characters-at-word-or-character-boun? – Larme

答えて

0

あなたの問題の原因は、このことがあります

NSMakeRange(0,1) 

多くのココア/ココアタッチのAPI UTF-16ベースのオフセットに&カウントを使用します。

ほとんどの絵文字は、2つのUTF-16コード単位で構成され、他の4つ以上のコード単位で構成されています。絵文字は、大きな長さを持っているので

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) 
} 
関連する問題