2011-08-09 20 views
4

UIWebView内で文全体を選択できるようにします。 UIWebViewで自分のUIMenuItem(ブックマークボタン)を使用しています。私はこのブックマーク(コアデータ)を保存し、強調表示がどの文章/詩であるかを判断したいと思います。プログラムでhtmlをレイアウトしています(sqliteデータベースから構築しています)。<span id="x">可変整数)を含む。 AmazonのKindleアプリではユーザーが単語全体を選択できるだけであることはわかっています。これどうやってするの?特定のUIWebViewの選択(単語/文全体のみ)

ありがとうございます!

+0

更新された回答を見ましたか? – Mohsen

答えて

3

setMarkedText:selectedRange:を試しましたか?

Apple developer lib

更新:

あなたは方法がないUIWebViewsetMarkedTextを使用しますが、JavaScriptを使用してすることはできませんが。表示しているHTMLページを操作できるかどうかわかりません。このスクリプトをページに追加することができます。ページを操作できない場合はiframeUIWebViewの中にロードし、実際のページを読み込み、iframeの後にこのスクリプトを追加する必要があります。ここで

はスクリプトです:

document.addEventListener('mouseup', function(){ 
    if(getSelection().anchorNode != null){ 
     var sel = getSelection(), 
      range = sel.getRangeAt(0), 
      nodeValue = sel.anchorNode.nodeValue, 
      lastCharIndex = range.endOffset, 
      firstCharIndex = range.startOffset, 
      lastChar = nodeValue.substr(lastCharIndex, 1), 
      firstChar = nodeValue.substr(firstCharIndex, 1); 

     while(lastChar != (" " || ".")){ 
      lastChar = nodeValue.substr(lastCharIndex, 1); 
      lastCharIndex++; 
     }; 

     while(firstChar != " "){ 
      firstChar = nodeValue.substr(firstCharIndex, 1); 
      firstCharIndex--; 
     }; 

     range.setEnd(sel.anchorNode, lastCharIndex-1); 
     sel.addRange(range); 
     range.setStart(sel.anchorNode, firstCharIndex+2); 
     sel.addRange(range); 
    } 
}, false); 

私は私のiPhone上でこれをテストし、それが正常に働いていました。

ここにはDemo(何かを選んでください)です。 私はそれに多くの時間を費やしました。あなたが楽しんでくれることを望みます。

+0

これは、 'UITextInput'プロトコルを実装しているクラスに対してのみ機能します。 また、文章などをつかむ方法を教えてください。 – joshim5

+0

私はiOSで新しく、iOSyの方法がないことを確認したいだけです。私は今夜​​JavaScriptの方法で作業します。この質問は私には面白いです。 UIWebViewにJSコードを挿入できることを願っています。 – Mohsen

+0

私の質問を更新しました。見てください – Mohsen