編集不可能なUITextView用(iPhone)selectedRange(またはクリック取り扱いの他の方法?)

StackOverflow https://stackoverflow.com/questions/668652

質問

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

最初は、私はUITextViewsにselectedIndexプロパティを使用して考えました。 UITextViewが編集可能でない場合残念ながら、UITextView年代に以下のコードは、常にテキストブロック全体の長さを返します:

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

これは、挿入ポイントを選択する方法はありません編集できないUITextViewと同じように、私は、と仮定し、理にかなって、それは私の任意の助けにはならないのです。 :)

別のアプローチは、ラップするラインを引き起こす可能性があります中国語テキストは、クリックが上陸したところ、幅が固定されており、時と場所の下に何のテキストをする必要がありますが、これは句読点によって複雑になることを利用して、計算することであろう早く、ラインの下の前の文字を持って来ます。

私は欠けているタッチイベントの下にあるものをテキストノウハウの別の方法はありますか?

役に立ちましたか?

解決

selectedRangeを求める前に、次を呼び出します:

[[textView webView] updateSelectionWithPoint:point];

注:両方-webView-updateSelectionWithPoint:はプライベートAPIです。あなたは、編集可能なトグルファーストレスポンダになってきてと偽のタッチイベントを送信することにより、同等の挙動をalsoperformことができますが、それは非常に多くの作業

になります
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top