我正在尝试创建AttributedString并添加属性
typingAttributes(来自textView)
问题是
.typingAttributes
返回
[String,Any]
和
NSAttributedString(string:..,attributes:[])
需求
[NSAttributedStringKey:Any]
我的代码:
NSAttributedString(string: "test123",attributes: self.textView.typingAttributes)
我不想创建for循环来遍历所有键并将其更改为
NSAttributedStringKey
您可以将[String:Any]字典映射到a
[NSAttributedStringKey:Any]字典
[NSAttributedStringKey:Any]字典
let typingAttributes = Dictionary(uniqueKeysWithValues: self.textView.typingAttributes.map { key,value in (NSAttributedStringKey(key),value) }) let text = NSAttributedString(string: "test123",attributes: typingAttributes)
这是一个可能的扩展方法,它是
限制为使用字符串键的字典:
extension Dictionary where Key == String { func toAttributedStringKeys() -> [NSAttributedStringKey: Value] { return Dictionary<NSAttributedStringKey,Value>(uniqueKeysWithValues: map { key,value) }) } }