4

(別のウィンドウのテーブルから) NSTextView にドラッグしています。NSTextView のテキストをドラッグすると、挿入ポイントを示すキャレットが表示されます。このキャレットの場所を取得する方法はないようで、私は以下を使用しています:

NSPoint mouseLocation = [sender draggingLocation];
NSPoint localMouseLocation = [self convertPoint:mouseLocation fromView:nil];
CGFloat fraction = 0.4;
NSUInteger dropLocation = [[self layoutManager] characterIndexForPoint:localMouseLocation inTextContainer:[self textContainer] fractionOfDistanceBetweenInsertionPoints:&fraction];

問題は、挿入されたテキストが、表示されたキャレットの左に 1 文字挿入される場合があることです。「fractionOfDistanceBetweenInsertionPoints」にさまざまな値を試しましたが、成功しませんでした。

Q1. ドラッグキャレットの位置を取得する方法はありますか?

Q2. Apple が使用している「fractionOfDistanceBetweenInsertionPoints」の値は何ですか?

Q3. 別のアプローチ (drawInsertionPointInRect など) を使用する必要がありますか?

ありがとう。

4

1 に答える 1