Swift 4に更新した後、このコードでエラーが発生します
attributes["NSFont"] = font
attributes["NSColor"] = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1)
タイプ 'String'のインデックスを持つタイプ '[NSAttributedStringKey:Any]'の値に添え字を付けることはできません
["NSFont"]
をNSAttributedStringKey.font
に置き換えることで最初の行を修正できましたが、2行目を修正する方法がわかりません。
Swift 4-NSAttributedString表現が完全に変更されています。
属性辞書を置き換えます-attributes
タイプ、[String : Any]
から[NSAttributedStringKey : Any]
または[NSAttributedString.Key : Any]
(まだ完了していない場合)。
これを試してください
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)
Apple document: NSAttributedString.Key からのメモです。
使用する NSAttributedStringKey.foregroundColor
2番目の場合、キーは文字列ではなく、列挙型定数です。
attributes[NSAttributedStringKey.font] = font
attributes[NSAttributedStringKey.foregroundColor] = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1)
すべてのキーは NSAttributedStringKeyの公式ドキュメント にあります。
Swift 3.3、NSForegroundColorAttributeName
、NSFontAttributeName
like
NSAttributedString(string: "text", attributes: [NSForegroundColorAttributeName : UIColor.white])
Swift 4.0+
NSAttributedString(string: "text", attributes: [NSAttributedStringKey.foregroundColor : UIColor.white])