1

私のCocoaアプリには、ユーザーがALT + ENTERを押して改行を挿入することになっているテキストフィールドがあります。それは結構です... NSStringとして値を取得してNSLogを実行すると、実際に新しい行が出力されていることがわかります。しかし、appendString を使用して html ページの一部として文字列を追加し、次に loadHTMLString を使用すると、結果の Web ページで新しい行が完全に無視されます...

提案やドキュメントへのリンクを教えてください。本当にわからない!

どうもありがとう!!!

4

2 に答える 2

1

単純な改行文字はブラウザーによってレンダリングされません。
改行文字 ( \n) を改行タグ ( <br>) に置き換えます。

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

タグは<br>Web ページで改行文字として表示されます。

于 2012-07-02T17:50:37.893 に答える
0

問題は、文字列に存在する新しい行が文字通りhtmlドキュメントソースに挿入されることです。htmlソースの改行は、htmlドキュメントがレンダリングされるときに文字通りレンダリングされません。(もしそうなら想像してみてください。htmlタグを区切るすべての新しい行文字のために、非常に多くの余分な新しい行が表示されます。)

代わりに、ユーザーが入力した生のテキストを処理して、ユーザーが入力したものとしてレンダリングされるhtmlソースを生成する必要があります。したがって、テキストを段落に分割してから、適切な<p></p>タグを挿入する必要があります。

enumerateSubstringsInRange:options:usingBlock:オプションでNSStringメソッドを使用できますNSStringEnumerationByParagraphs。各段落を処理します。

また、ユーザーが入力したデータをサニタイズする必要があります。たとえば、ユーザーがいくつかのhtmlタグを入力した場合に、ページが台無しにならないようにする必要があります。データのサナタイズは、テキスト内のすべての制限された文字を適切なhtmlエンティティに置き換えるのと同じくらい簡単かもしれませんが、それはあなたが何をしているかに依存します。

于 2012-07-02T17:55:18.633 に答える