我有一个NSEvent,想要检测何时点击一个rect,这就是我的代码:
- (void)mouseDown:(NSEvent *)event;
{
NSPoint clickedPoint = [event locationInWindow];
//perform code for clickedPoint
}
如何将rect或视图转换为NSPoint而不是使用locationInWindow,以便检查我是否单击了rect?谢谢!
答案 0 :(得分:3)
首先,请考虑您是否确实要覆盖mouseDown:
,或者覆盖mouseUp:
是否是更好的选择。如果此次点击类似于点击按钮,则通常最好覆盖mouseUp:
而不是mouseDown:
,因为mouseUp:
会允许用户通过拖动“改变主意”在放开鼠标之前将鼠标移出按钮的矩形。
NSEvent
的{{1}}在基本窗口的坐标中给出了事件的位置。要将该位置转换为视图的本地坐标系,您可以使用locationInWindow
的{{3}},如下所示:
NSView
有关详细信息,请参阅convertPoint:fromView:。