2012-07-02 27 views
1

在我的可可應用程序我有一個文本框,用戶應該按ALT + ENTER插入一個換行符。沒關係......當我把它作爲NSString的值並做一個NSLog時,我確實看到新的行是打印的。 但是,當我追加字符串作爲一個HTML頁面的一部分與appendString,然後用loadHTMLString,新的行被完全忽略在生成的網頁...ALT + ENTER,如何檢測NSString中的換行符?

你能否給我一個建議或文檔鏈接讀?我真的不知道!

非常感謝!

+2

這聽起來像是你的網頁有問題,而不是NSString – mydogisbox

回答

1

平原換行符不被瀏覽器渲染。
更換換行符(\n)通過,換行符(<br>)。

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

<br>標籤將顯示在網頁中的換行符。

0

的問題是存在的字符串中的新線是從字面上插入到HTML文檔源。 HTML源代碼中的換行符在呈現html文檔時不會被逐字呈現。 (想象一下,如果他們這樣做了;由於所有這些新的行字符將html標籤分開,所以會顯示許多額外的新行。)

相反,您應該處理用戶輸入的原始文本以生成html源代碼呈現爲用戶輸入的內容。因此,您必須將文本分成幾段,然後插入適當的<p></p>標籤。

可以使用的NSString方法enumerateSubstringsInRange:options:usingBlock:與選項NSStringEnumerationByParagraphs。處理每個段落。

此外,你應該消毒用戶輸入的數據。例如,如果用戶輸入一些html標記,則不希望頁面混亂。對數據進行數據處理可能非常簡單,只需使用適當的html實體替換文本中的所有受限字符,但這取決於您正在做什麼。