我需要将其转换回 HTML,而不是将 HTML 转换为属性字符串。这可以在 Mac 上轻松完成,如下所示:http://www.justria.com/2011/01/18/how-to-convert-nsattributedstring-to-html-markup/
不幸的是,dataFromRange:documentAttributes:
方法只能通过 NSAttributedString
AppKit Additions 在 Mac 上使用。
我的问题是如何在 iOS 上执行此操作?
最佳答案
这不是“简单”的方法,而是使用以下方法遍历字符串的属性:
- (void)enumerateAttributesInRange:(NSRange)enumerationRange
options:(NSAttributedStringEnumerationOptions)opts
usingBlock:(void (^)(NSDictionary *attrs, NSRange range, BOOL *stop))block
有一个NSMutableString
变量来累积 HTML(我们称之为“html”)。在该 block 中,您将使用字符串手动构建 HTML。例如,如果文本属性“attrs”指定红色、粗体文本:
[html appendFormat:@"<span style='color:red; font-weight: bold;'>%@</span>", [originalStr substringWithRange:range]]
编辑:昨天偶然发现了这个:
来自“UliKit”的 NSAttributedString+HTMLFromRange 类别 ( https://github.com/uliwitness/UliKit/blob/master/NSAttributedString+HTMLFromRange.m )
看起来它会做你想做的事。
关于来自 NSAttributedString 的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6564258/