(別のウィンドウのテーブルから) 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 など) を使用する必要がありますか?
ありがとう。