在我的可可應用程序我有一個文本框,用戶應該按ALT + ENTER插入一個換行符。沒關係......當我把它作爲NSString的值並做一個NSLog時,我確實看到新的行是打印的。 但是,當我追加字符串作爲一個HTML頁面的一部分與appendString,然後用loadHTMLString,新的行被完全忽略在生成的網頁...ALT + ENTER,如何檢測NSString中的換行符?
你能否給我一個建議或文檔鏈接讀?我真的不知道!
非常感謝!
在我的可可應用程序我有一個文本框,用戶應該按ALT + ENTER插入一個換行符。沒關係......當我把它作爲NSString的值並做一個NSLog時,我確實看到新的行是打印的。 但是,當我追加字符串作爲一個HTML頁面的一部分與appendString,然後用loadHTMLString,新的行被完全忽略在生成的網頁...ALT + ENTER,如何檢測NSString中的換行符?
你能否給我一個建議或文檔鏈接讀?我真的不知道!
非常感謝!
平原換行符不被瀏覽器渲染。
更換換行符(\n
)通過,換行符(<br>
)。
NSString *newString = [oldString stringByReplacingOccurancesOfString:@"\n" withString:@"<br>"]
的<br>
標籤將顯示在網頁中的換行符。
的問題是存在的字符串中的新線是從字面上插入到HTML文檔源。 HTML源代碼中的換行符在呈現html文檔時不會被逐字呈現。 (想象一下,如果他們這樣做了;由於所有這些新的行字符將html標籤分開,所以會顯示許多額外的新行。)
相反,您應該處理用戶輸入的原始文本以生成html源代碼呈現爲用戶輸入的內容。因此,您必須將文本分成幾段,然後插入適當的<p></p>
標籤。
可以使用的NSString方法enumerateSubstringsInRange:options:usingBlock:
與選項NSStringEnumerationByParagraphs
。處理每個段落。
此外,你應該消毒用戶輸入的數據。例如,如果用戶輸入一些html標記,則不希望頁面混亂。對數據進行數據處理可能非常簡單,只需使用適當的html實體替換文本中的所有受限字符,但這取決於您正在做什麼。
這聽起來像是你的網頁有問題,而不是NSString – mydogisbox