Cocoa 如何确定鼠标在视图中单击的位置(X和Y)?
我正在尝试将精灵移动到鼠标单击的位置。 我怎样才能得到它的坐标Cocoa 如何确定鼠标在视图中单击的位置(X和Y)?,cocoa,macos,Cocoa,Macos,我正在尝试将精灵移动到鼠标单击的位置。 我怎样才能得到它的坐标 谢谢 假设您使用的是事件响应程序方法(例如,mouseDown:): [myView convertPointFromBase:[NSEvent mouseLocation]]假设您使用的是事件响应程序方法(例如鼠标向下:): [myView convertPointFromBase:[NSEvent mouseLocation]]Barry的答案会起作用,但会在调用函数时返回鼠标的位置。只要在事件生成后不久处理该事件,这是可以的,
谢谢 假设您使用的是事件响应程序方法(例如,
mouseDown:
):
[
myView convertPointFromBase:[NSEvent mouseLocation]]代码>假设您使用的是事件响应程序方法(例如鼠标向下:
):
[myView convertPointFromBase:[NSEvent mouseLocation]]代码>Barry的答案会起作用,但会在调用函数时返回鼠标的位置。只要在事件生成后不久处理该事件,这是可以的,但更好的方法是:
- (void)mouseDown:(NSEvent *)event {
NSPoint location = [self convertPointFromBase:[event locationInWindow]];
//Move sprite to location
}
这将始终使用事件生成时的鼠标位置。此外,Barry的回答假设窗口和屏幕使用相同的坐标。这通常是正确的,但有时为了安全起见会更好。Barry的答案会起作用,但会在调用函数时返回鼠标的位置。只要在事件生成后不久处理该事件,这是可以的,但更好的方法是:
- (void)mouseDown:(NSEvent *)event {
NSPoint location = [self convertPointFromBase:[event locationInWindow]];
//Move sprite to location
}
这将始终使用事件生成时的鼠标位置。此外,Barry的回答假设窗口和屏幕使用相同的坐标。这通常是正确的,但有时为了安全起见更好