2012-03-24 5 views
0

コンテンツ編集可能なUIWebViewを使用してリッチテキストエディタを作成しようとしました.UITextViewは豊かなものを得られません。プログラムで選択範囲を置き換えたり、HTMLコードを挿入する方法(たとえば、選択されたテキストへのリンクを作成する、または検索/置換機能を実装するなど)はどうですか?私は試しました:UIWebViewでのHTMLの挿入

[self.webTexteView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.ExecCommand('insertHTML', false, '%@')", myString]]; 

しかし、それは解決しないのですか?

おかげで、

デニス

答えて

6

これは遅れているが、誰がこれを見ているだけで包み、あなたのオリジナルのソリューションは動作しますが、あなただけの誤っ

document.ExecCommand 

を持っていることは

document.execCommand 

アイブでそれをテストする必要があります小文字のeと動作します。

1

あなたはloadHTMLString:メッセージを使用してのWebViewにHTMLを読み込むことができます。私はそれがあなたが望むものではないと思います。

HTMLを読み込んだ後に、webviewのjavascriptとobjective-cコードの間で通信するための2つのオプションがあります。 1はobjective-cから開始され、2はjavascriptから開始されます。

  1. uiwebviewのstringByEvaluatingJavaScriptFromString:メッセージを使用してjavascriptを実行することができます。これは非常に柔軟性があり、コードの挿入と既存のコードの呼び出しの両方に使用できます。例えば。 [webView stringByEvaluatingJavascriptFromString:@"document.getElementById(\"editor\").innerHTML"]を実行してidエディタでdivからコンテンツを取得することができます。

  2. UIWebViewDelegateを実装すると、webviewでURLが開かれるたびにwebView:shouldStartLoadWithRequest:navigationType:によって通知することができます。これにより、URLから情報を抽出して、NOを返すことでそれ以上の読み込みをキャンセルすることができます。例えば。あなたのjavascriptでは、カーソルが太字のテキストの上を通過するときにdocument.location = "bold";を実行できます。これは、これを反映するためにあなたのUIを更新するチャンスを与えるでしょう。

+0

これは私が 'stringByEvaluatingJavaScriptFromString:'で使用する最初のオプションで、選択肢を太字または斜体にするために完全に機能します。私はloadHTMLStringを使用することを義務づけられないことを嬉しく思っています。なぜなら、私は選択を失い、範囲を知らずに検索/置換を義務づけるからです。 – Denis

+0

私はこれについての初心者ですので投票できませんウェブサイト...まだこの問題の解決策は見つかっていない... NSTextはOSXの素晴らしい解決策であり、おそらくMacintosh上でMS Wordの支配を下げるために開始された。 iOSでは、Microsoftも、Appleの努力もない...この会社が、ほとんどのテキストを欲しがる人々のための解決策ではない「Pages」アプリケーションを販売するのに役立つ... – Denis