2

静的コンテンツを保持するために を使用しUITextViewています (中国語では、文字はすべて固定幅であることを意味します)。ユーザーがテキスト内の文字をクリックすると、その文字の辞書情報が表示されるようにしたいと考えています。コピー&ペーストが使えないことにまつわる問題はすべて知っているが、iPhone 3.0 ファームウェアを待たずにこれを行う方法があることを願っている。

UITextView最初は、 sselectedIndexプロパティを使用することを考えました。残念ながら、UITextViewが編集できない場合、 内の次のコードはUITextView常にテキスト ブロック全体の長さを返します。

NSRange touchPoint = self.selectedRange;
NSLog(@"Selection: %d", touchPoint.location);

編集不可の場合、挿入ポイントを選択する方法がないため、これは理にかなっていると思いますが、UITextView何の役にも立ちません。:)

別のアプローチは、中国語のテキストが固定幅であるという事実を使用して、クリックが着地した場所とその時点でその場所の下にあるテキストを使用して計算することですが、これは句読点によって複雑になり、行が早く折り返される可能性があります。行の前の文字。

欠落しているタッチイベントの下にあるテキストを知る別の方法はありますか?

4

1 に答える 1

2

selectedRange:を求める前に、以下に電話してください。

[[textView webView] updateSelectionWithPoint:point];

注:とは両方とも-webViewプライベート-updateSelectionWithPoint:APIです。編集可能を切り替え、ファーストレスポンダーになり、偽のタッチイベントを送信することで、同等の動作を実行することもできますが、それははるかに手間がかかります

于 2009-03-21T05:56:59.423 に答える