UITextView 应该避免删除 html 标签

Posted

技术标签:

【中文标题】UITextView 应该避免删除 html 标签【英文标题】:UITextView should avoid deleting the html tag 【发布时间】:2016-07-15 22:35:03 【问题描述】:

我有一个 UITextView,它以 css 样式显示评论文本的内容。基本上,有一个带有一些样式的 htmlString。

NSMutableAttributedString *attributedStringForComment = [[NSMutableAttributedString alloc] initWithData:[formatedStr dataUsingEncoding:NSUnicodeStringEncoding] 选项:@ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType documentAttributes:nil error:nil];

在 UITextView 上以 css 样式显示内容。

现在,如果有人编辑文本,那么我们通过删除 css 样式来隐藏评论部分(因此用户不能删除其他人的评论),然后我们通过添加罢工/颜色属性来应用带有 NSMutableAttributedString 的样式以删除/添加单词。

问题: 当用户完成编辑部分时,我希望我的字符串将文本编辑为带有注释的 css 样式的 html。 当我们使用某种样式应用 NSMutableAttributedString 时,它会删除 html 标签和 css 样式。

任何技巧/提示都会帮助我找到解决方案。

【问题讨论】:

我没有完全理解。您是否有一些示例以及如何应用效果? @Larme 我的要求是当我编辑 textview 的内容时,然后在编辑内容后 标记应该分别出现以添加和删除任何单词。我可以通过应用属性样式来做到这一点,但我需要以 html 格式发布编辑后的内容,因为服务器需要 html 格式的内容。 【参考方案1】:
NSAttributedString *yourHTMLSourceCodeString = textView.attributedText;
NSDictionary *documentAttributes = @NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType;
NSData *htmlData = [yourHTMLSourceCodeString dataFromRange:NSMakeRange(0, yourHTMLSourceCodeString.length) documentAttributes:documentAttributes error:NULL];
NSString* body  = [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];

【讨论】:

代码应附有详细说明,说明它的作用以及为什么它是正确的解决方案。

以上是关于UITextView 应该避免删除 html 标签的主要内容,如果未能解决你的问题,请参考以下文章

UITextView 避免 collectionViewCell 被点击

UITextView 避免键盘滚动

在 uitextview 中获取字符串的结尾

UITextView 避免文本选择,但保留可点击的链接

iPhone:- 从标签文本链接识别

禁用 UITextView 中的滚动,同时避免在 ios 的当前位置弹跳到顶部和文本不可见