Color-Attribut wird in NSAttributedString mit NSLinkAttributeName @ ignorie

In einem (nNSAttributedString, ein Buchstabenbereich hat ein Link-Attribut und ein benutzerdefiniertes Farbattribut.

In Xcode 7 mit Swift 2 funktioniert es:

In Xcode 8 mit Swift 3 wird die benutzerdefinierte zugewiesene Farbe für den Link immer ignoriert (im Screenshot sollte sie orange sein).

Hier ist der Code zum Testen.

Swift 2, Xcode 7:

import Cocoa
import XCPlayground

let text = "Hey @user!"

let attr = NSMutableAttributedString(string: text)
let range = NSRange(location: 4, length: 5)
attr.addAttribute(NSForegroundColorAttributeName, value: NSColor.orangeColor(), range: range)
attr.addAttribute(NSLinkAttributeName, value: "http://somesite.com/", range: range)

let tf = NSTextField(frame: NSRect(x: 0, y: 0, width: 200, height: 50))
tf.allowsEditingTextAttributes = true
tf.selectable = true
tf.stringValue = text
tf.attributedStringValue = attr

XCPlaygroundPage.currentPage.liveView = tf

Swift 3, Xcode 8:

import Cocoa
import PlaygroundSupport

let text = "Hey @user!"

let attr = NSMutableAttributedString(string: text)
let range = NSRange(location: 4, length: 5)
attr.addAttribute(NSForegroundColorAttributeName, value: NSColor.orange, range: range)
attr.addAttribute(NSLinkAttributeName, value: "http://somesite.com/", range: range)

let tf = NSTextField(frame: NSRect(x: 0, y: 0, width: 200, height: 50))
tf.allowsEditingTextAttributes = true
tf.isSelectable = true
tf.stringValue = text
tf.attributedStringValue = attr

PlaygroundPage.current.liveView = tf

Ich habe einen Fehlerbericht an Apple gesendet, aber in der Zwischenzeit wäre es großartig, wenn jemand eine Idee für eine Fehlerbehebung oder Problemumgehung in Xcode 8 hätte.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage