我有一个捕获mouseDown事件的NSView。
我正在使用以下方式协调鼠标点击:
- (void)mouseDown:(NSEvent *)theEvent {
NSPoint touchPoint = [NSEvent mouseLocation];
//Rest of code
}
但是,这会将clickPoint设置为全局屏幕协调中鼠标的位置。
我想在相对视图协调中获得点击的位置 - 如果用户点击窗口的左下角,我想要点(0,0),无论屏幕上包含的窗口在哪里。
我有一个捕获mouseDown事件的NSView。
我正在使用以下方式协调鼠标点击:
- (void)mouseDown:(NSEvent *)theEvent {
NSPoint touchPoint = [NSEvent mouseLocation];
//Rest of code
}
但是,这会将clickPoint设置为全局屏幕协调中鼠标的位置。
我想在相对视图协调中获得点击的位置 - 如果用户点击窗口的左下角,我想要点(0,0),无论屏幕上包含的窗口在哪里。
你应该使用 locationInWindow不是 mouseLocation。文档上 locationInWindow 展示如何去那里:
NSPoint event_location = [theEvent locationInWindow];
NSPoint local_point = [self convertPoint:event_location fromView:nil];