在视图坐标系中获取[NSEvent鼠标位置]

时间:2014-05-21 15:37:50

标签: macos mousedown nsevent

我有一个正在捕捉mouseDown事件的NSView。

我正在使用以下方式协调鼠标点击:

- (void)mouseDown:(NSEvent *)theEvent {
    NSPoint touchPoint = [NSEvent mouseLocation];
    //Rest of code
}

但是,这会将clickPoint设置为全局屏幕协调中鼠标的位置。

我想在相对视图协调中获取点击的位置 - 如果用户点击窗口的左下角,无论包含窗口在哪里,我都希望该点为(0,0)屏幕。

2 个答案:

答案 0 :(得分:21)

您应该使用locationInWindow,而不是mouseLocationlocationInWindow上的文档显示了如何从那里开始:

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)
}