我有一个正在捕捉mouseDown事件的NSView。
我正在使用以下方式协调鼠标点击:
- (void)mouseDown:(NSEvent *)theEvent {
NSPoint touchPoint = [NSEvent mouseLocation];
//Rest of code
}
但是,这会将clickPoint设置为全局屏幕协调中鼠标的位置。
我想在相对视图协调中获取点击的位置 - 如果用户点击窗口的左下角,无论包含窗口在哪里,我都希望该点为(0,0)屏幕。
答案 0 :(得分:21)
您应该使用locationInWindow
,而不是mouseLocation
。 locationInWindow
上的文档显示了如何从那里开始:
NSPoint event_location = [theEvent locationInWindow];
NSPoint local_point = [self convertPoint:event_location fromView:nil];
答案 1 :(得分:0)
快速
override func mouseMoved(with event: NSEvent) {
let mouseLocation = event.locationInWindow
print(mouseLocation)
}