Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 跟踪光标位置并返回鼠标相对于窗口的位置_Cocoa_User Interface_Mouseevent_Mousemove - Fatal编程技术网

Cocoa 跟踪光标位置并返回鼠标相对于窗口的位置

Cocoa 跟踪光标位置并返回鼠标相对于窗口的位置,cocoa,user-interface,mouseevent,mousemove,Cocoa,User Interface,Mouseevent,Mousemove,我想我会在cocoa应用程序中发布一个关于在cocoa中连续跟踪鼠标位置的问答(在OSX 10.5.8中使用xcode 3.1.4) 这是一个自我回答的问题,因为我最终找到了答案,但在这里找不到一个我认为描述了我如何解决它的答案 可能有些人会认为这比使用10.6中没有屏蔽功能的event taps plus更简单:)我就是这样做的 首先,这是我用来设置跟踪区域的代码: NSTrackingArea* trackingArea = [ [ NSTrackingArea alloc] initWit

我想我会在cocoa应用程序中发布一个关于在cocoa中连续跟踪鼠标位置的问答(在OSX 10.5.8中使用xcode 3.1.4)

这是一个自我回答的问题,因为我最终找到了答案,但在这里找不到一个我认为描述了我如何解决它的答案

可能有些人会认为这比使用10.6中没有屏蔽功能的event taps plus更简单:)

我就是这样做的

首先,这是我用来设置跟踪区域的代码:

NSTrackingArea* trackingArea = [ [ NSTrackingArea alloc] initWithRect:[ mainWindow frame]       options:(NSTrackingMouseMoved | NSTrackingActiveAlways ) owner:self userInfo:nil);

[container addTrackingArea:trackingArea];
创建主窗口时,我在设置所有内容时添加此消息:

 [window setAcceptsMouseMovedEvents:YES];
在我要捕获事件的类的头文件中(对于我来说,它与我创建的跟踪区域在同一个类中),我将NSResponder子类化,然后实现我要捕获的事件(对于我来说,它是mouseMoved)

-(void) mouseMoved: (NSEvent *) thisEvent
{
  NSPoint cursorPoint = [ thisEvent locationInWindow ];
  NSLog(@"X coordinate is %f and Y coordinate is %f",cursorPoint.x,cursorPoint.y);
}
希望这能有所帮助:)


谢谢

谢谢!我得到了全局鼠标坐标
[n事件鼠标定位]

我遗漏的关键步骤是子类NSResponder:)请务必提及您遗漏的NSResponder子类。