私のアプリでは、NSTextView でポップオーバーを表示したいので、NSTextView で選択した四角形の座標を画面座標に変換する必要があります。私はこのコードを試しました:
NSWindow* viewWindow = [self window];
NSRect rect = [self firstRectForCharacterRange:[self selectedRange]];
rect = [[self superview] convertRect:rect toView:nil]; //converting to NSClipView coordinate system
rect = [viewWindow convertRectToScreen:rect];
return rect;
ほぼ問題なく動作しますが、返された rect は "x" によって非常に "壊れた" 原点を持っています。たとえば、rect.origin.x
最初が 670 の場合、最後は 1022 になります。
何か案は?
ありがとう。