如何解决NSAttributedString 忽略 html 标签内的属性
单词“TM”需要字体大小为 6px。
-- Answer:
-- lang domain person count_distinct_urls
-- Hebrew ynet.co.il Naftali Bennet 1
-- Hebrew ynet.co.il Yair Lapid 1
我所做的,我将其转换为 AttributedString:
let newText = "My new Trade mark is MELLON<sup style="font-size:6px">TM</sup> Corporation"
而且进展顺利: before custom font
(字体大小为10时,匹配NSAtrString的默认大小)
let htmltonSAttributedString = NSAttributedString(data: self,options: [.documentType: NSAttributedString.DocumentType.html,.characterEncoding: String.Encoding.utf8.rawValue],documentAttributes: nil)
并得到下一个结果: after custom font
我如何保留它们?
例如,我有这个工作: printed attributed String
我可以收回 NSAttributedStr 的确切部分的数据吗?所以我可以存储它,然后将零件重新添加在一起?
编辑
mutable.addAttributes([.font : font],range: NSMakeRange(0,mutable.length))
解决方法
@Larm 提出了解决这个问题的好主意:
迭代您的属性,并替换字体(使用新字体但使用当前字体大小)。
这就是我所做的:
mutable.enumerateAttributes(in: NSMakeRange(0,mutable.length),options: .longestEffectiveRangeNotRequired) { attrs,range,stop in
if (attrs[.superscript] == nil) {
mutable.addAttributes([.font : font],range: range)
} else {
let oldFont = attrs[.font] as? NSFont ?? font
mutable.addAttributes([.font : NSFont(name: font.fontName,size: oldFont.pointSize) ?? font],range: range)
}
}
}
我检查了 attr
是否具有与标签 NSSuperScript
对应的 <sup>
属性
如果是这样,我跳过了设置字体大小,而是只应用了新的字体样式
注意:标题还有一些问题,但在描述中一切都很好
当我修复它时,我会编辑这个答案
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。