Après la mise à jour vers Swift 4, une erreur est générée sur ce code
attributes["NSFont"] = font
attributes["NSColor"] = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1)
Impossible d'indiquer une valeur de type '[NSAttributedStringKey: Any]' avec un index de type 'String'
J'ai pu réparer la première ligne en remplaçant ["NSFont"]
par NSAttributedStringKey.font
mais je ne sais pas comment régler la seconde.
Dans Swift 4 - la représentation de NSAttributedString est complètement modifiée.
Remplacez votre dictionnaire d'attributs - type attributes
, de [String : Any]
à [NSAttributedStringKey : Any]
ou [NSAttributedString.Key : Any]
, si vous ne l'avez pas déjà fait.
Essayez ceci dans
attributes[NSAttributedString.Key.font] = font
attributes[NSAttributedString.Key.foregroundColor] = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1)
attributes[NSAttributedStringKey.font] = font
attributes[NSAttributedStringKey.foregroundColor] = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1)
Voici la note du document Apple: NSAttributedString.Key
Utilisez NSAttributedStringKey.foregroundColor
pour le second, les clés ne sont plus des chaînes, mais des constantes enum.
attributes[NSAttributedStringKey.font] = font
attributes[NSAttributedStringKey.foregroundColor] = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1)
Vous pouvez trouver toutes les clés dans la documentation officielle de NSAttributedStringKey .
Pour Swift 3.3, NSForegroundColorAttributeName
, NSFontAttributeName
like
NSAttributedString(string: "text", attributes: [NSForegroundColorAttributeName : UIColor.white])
Pour Swift 4.0+
NSAttributedString(string: "text", attributes: [NSAttributedStringKey.foregroundColor : UIColor.white])