setMarkedText:selectedRange:
を試しましたか?
Apple developer lib
更新:
あなたは方法がないUIWebView
内setMarkedText
を使用しますが、JavaScriptを使用してすることはできませんが。表示しているHTMLページを操作できるかどうかわかりません。このスクリプトをページに追加することができます。ページを操作できない場合はiframe
をUIWebView
の中にロードし、実際のページを読み込み、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(何かを選んでください)です。 私はそれに多くの時間を費やしました。あなたが楽しんでくれることを望みます。
更新された回答を見ましたか? – Mohsen