我有一些文字来自一些wordpress编辑器,其中包括一些文本,格式(回车)和一些基本的HTML。在我的iOS应用程序中显示时,我使用
let attributedString = try! NSMutableAttributedString(data: myText.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true)!, options: [NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType]
textview.attributedText = attributedString
这将从文本中删除所有回车符。如果我只是使用
textview.text = myText
它不会显示html。是否可以同时显示HTML和格式? 例如,在编辑器中输入
时"text text text
text text <a href="http://example.com">some link</a>
text text text"
并在我的应用中显示它看起来像
&#34;文字文字文字文字some link文字文字&#34;
我知道这可以通过在html p标签中包装每个段落来完成,但我只想使用回车键格式化文本
答案 0 :(得分:0)
HTML中的所有空白字符序列(包括换行符)都将转换为单个空格。这是HTML的基本属性。
如果您需要换行符,请使用<br>
。你可以简单地说:
myText.replacingOccurrences(of: "\n", with: "<br>")
转换为属性字符串之前。
答案 1 :(得分:0)
我知道这可以通过在html p标签中包装每个段落来完成,但我只想使用回车键格式化文本
您需要<br>
来渲染硬回车,但如果您愿意,可以通过编程方式添加它们:
func html(from: String) -> NSAttributedString? {
guard let data = from
.replacingOccurrences(of: "\n", with: "<br>")
.data(using: .unicode, allowLossyConversion: true) { else return nil }
return try? NSMutableAttributedString(data: data, options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType])
}
然后您可以使用以下方法:
var myText = """
"text text text
text text <a href="http://example.com">some link</a>
text text text"
"""
if let html = html(from: myText) {
// do something with html
}