将屏幕坐标中的NSPoint转换为窗口坐标

时间:2010-10-25 09:18:40

标签: cocoa drag-and-drop

我正在实现拖放cocoa应用程序,我正在使用NSDraggingSource Protocol中的以下方法:

- (void)draggedImage:(NSImage *)draggedImage movedTo:(NSPoint)screenPoint{

NSPoint以屏幕坐标给出,我需要在窗口或视图坐标中。如果使用NSEvent调用该方法,我可以执行以下操作:

    -(void)mouseDown:(NSEvent *)pTheEvent {

 NSPoint tvarMouseInWindow = [pTheEvent locationInWindow];
 NSPoint tvarMouseInView   = [self convertPoint:tvarMouseInWindow fromView:nil]; }

但我无法弄清楚如何只使用NSPoint来做到这一点。提前谢谢!

1 个答案:

答案 0 :(得分:12)

查看NSWindow文档,有一个

- (NSPoint)convertScreenToBase:(NSPoint)aPoint

可以让你将点转换为窗口坐标。