2
我有一个自定义视图类,它接收鼠标事件的正确的坐标。我没有得到正确的mouseDown或mouseUp事件坐标。无论我在视图内点击哪里,我都会得到相同的错误坐标。mouseDown事件没有显示点击
这是我在我的自定义的NSView类
- (void)mouseDown:(NSEvent *)theEvent
{
NSPoint coordinateInBaseWindow = theEvent.locationInWindow;
NSPoint coordinateInView = [self convertPoint:coordinateInBaseWindow fromView:nil];
NSLog(@"left mouse down (x,y) =(%f,%f)", coordinateInView.x, coordinateInView.y);
}
功能我有mouseUp
事件的类似处理。
现在输出总是
左鼠标向下(X,Y)=(0.000000,-1.996910)
左鼠标向上(X,Y)=(0.000000,0.000000)
无论我点击视图中,鼠标左键的协调下总是(0.000000,-1.996910)和鼠标左键,则始终(0.000000,0.000000)。
- 我在做什么错?为什么我无法获得鼠标点击事件的正确坐标?
- 鼠标按下和MouseUp共同打造一个点击。 mouseDown和mouseUp的坐标不应该相等吗?为什么他们在这种情况下不同?
编辑1:
由于omz指出,我应该用convertPoint:fromView:
但是这也没有解决问题。我仍然获得相同的坐标。
编辑2: 我在NSLog格式说明符不正确,这给我完全错误的结果。
我有固定的代码,但我仍然得到同样的结果。 '(0.000000,-1.996910)'和'(0.000000,0.000000)'。 –
你的(编辑的)代码在这里工作得很好。你的代码中可能会影响结果的其他任何内容? – omz