1

在我的 Cocoa 应用程序中,我有一个文本字段,用户应该通过按 ALT+ENTER 来插入换行符。没关系......当我将它的值作为 NSString 并执行 NSLog 时,我实际上看到新行正在打印。但是,当我使用 appendString 然后使用 loadHTMLString 将字符串作为 html 页面的一部分附加时,新行在生成的网页中被完全忽略...

您能否给我一个建议或文档链接以供阅读?我真的不知道!

非常感谢!!!

4

2 回答 2

1

浏览器不会呈现普通的换行符。用换行符 ( )
替换换行符( )。\n<br>

NSString *newString = [oldString stringByReplacingOccurancesOfString:@"\n" withString:@"<br>"]

标签将<br>在网页中显示为换行符。

于 2012-07-02T17:50:37.893 回答
0

问题是字符串中存在的新行被逐字插入到 html 文档源中。html 源代码中的换行符在呈现 html 文档时不会逐字呈现。(想象一下,如果他们这样做了;由于所有这些新行字符分隔 html 标记,您会显示很多很多额外的新行。)

相反,您应该处理用户输入的原始文本以生成 html 源代码,该源代码将呈现为用户输入的内容。因此,您必须将文本分成段落,然后插入适当的<p></p>标签。

您可以将 NSString 方法enumerateSubstringsInRange:options:usingBlock:与选项一起使用NSStringEnumerationByParagraphs。处理每个段落。

此外,您应该清理用户输入的数据。例如,如果用户输入一些 html 标签,您不希望您的页面混乱。清理数据可能就像用适当的 html 实体替换文本中的所有受限字符一样简单,但这取决于您在做什么。

于 2012-07-02T17:55:18.633 回答