Swift 4的attributesString得到了输入属性

前端之家收集整理的这篇文章主要介绍了Swift 4的attributesString得到了输入属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建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]字典
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)
        })
    }
}

猜你在找的Swift相关文章