11
NSViewのフレーム/境界を画面に対して取得する必要があります。言い換えれば、xとyの座標は、スーパービューに相対的な位置ではなく、画面上の位置になる必要があります。Mac OS X 10.6でNSViewフレーム/境界を画面に表示
コメントに基づいて以下の解決策を考え出しました。
NSRect frameRelativeToWindow = [self.view
convertRect:self.view.bounds toView:nil
];
#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_6
NSPoint pointRelativeToScreen = [self.view.window
convertRectToScreen:frameRelativeToWindow
].origin;
#else
NSPoint pointRelativeToScreen = [self.view.window
convertBaseToScreen:frameRelativeToWindow.origin
];
#endif
NSRect frame = self.view.frame;
frame.origin.x = pointRelativeToScreen.x;
frame.origin.y = pointRelativeToScreen.y;
convertRectToScreenは、Mac OS X v10.7用で、後に使用可能です。私は10.6 SDKが必要です。 – junglecat