ALT + ENTER,如何检测NSString中的换行符?

时间:2012-07-02 17:44:07

标签: cocoa newline textfield

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

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

非常感谢!!!

2 个答案:

答案 0 :(得分:1)

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

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

<br>代码会在网页中显示为换行符。

答案 1 :(得分:0)

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

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

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

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