Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 如何确定鼠标在视图中单击的位置(X和Y)?_Cocoa_Macos - Fatal编程技术网

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的回答假设窗口和屏幕使用相同的坐标。这通常是正确的,但有时为了安全起见更好