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];

问题是有时插入的文本被插入到显示的插入符号左侧一个字符。我尝试了 'fractionOfDistanceBetweenInsertionPoints' 的不同值,但没有成功。

Q1。有没有办法获得拖动插入符号的位置?

Q2。Apple 使用的是什么“fractionOfDistanceBetweenInsertionPoints”值?

Q3。我应该使用另一种方法(也许是 drawInsertionPointInRect)吗?

谢谢。

4

1 回答 1

6

好的,解决方案是使用 characterIndexForInsertionAtPoint 而不是 characterIndexForPoint。因此,

NSPoint mouseLocation = [sender draggingLocation];
NSUInteger dropLocation = [self characterIndexForInsertionAtPoint:[self convertPoint:mouseLocation fromView:nil]];
于 2013-07-16T20:13:28.647 回答