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

时间:2012-08-07 12:16:39

标签: cocoa user-interface mouseevent mousemove

我想我会发布一个问题和答案,关于在cocoa app中连续跟踪cocoa中的鼠标位置(在OSX 10.5.8中使用xcode 3.1.4)。

这是一个自我回答的问题,因为我终于弄清楚了,在这里找不到答案,我想我已经设法解决了这个问题

可能有些人可能认为比使用事件点击更容易,而且在10.6中没有屏蔽功能这很容易:)

2 个答案:

答案 0 :(得分:1)

继承人我是怎么做到的。

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

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

希望这有一些帮助:)

谢谢!

答案 1 :(得分:0)

谢谢!我得到了全局鼠标坐标 [NSEvent mouseLocation];