2013-07-13 35 views
2

我正在拖動到NSTextView(從另一個窗口中的表中),並且在拖動NSTextView中的文本時顯示插入點處會顯示插入符號。似乎有沒有辦法讓這個插入符的位置和我使用:在NSTextView中拖動脫字符與characterIndexForPoint的結果不匹配

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。有沒有辦法獲得拖動插入符號的位置? Q2302。 Apple使用什麼'fractionOfDistanceBetweenInsertionPoints'值?

Q3。我應該使用替代方法(drawInsertionPointInRect也許)?

謝謝。

回答

3

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

NSPoint mouseLocation = [sender draggingLocation]; 
NSUInteger dropLocation = [self characterIndexForInsertionAtPoint:[self convertPoint:mouseLocation fromView:nil]]; 
+0

你救了我:) – Aravindhan