2012-08-07 27 views
0

我以爲我會發佈一個問題和答案,關於在可可應用中連續跟蹤可可中的鼠標位置(在OSX 10.5.8中使用xcode 3.1.4)。跟蹤光標位置可可並返回鼠標相對於窗口的位置

這是自答案的問題,因爲我終於想通了,不能在這裏找到答案,我認爲我描述瞭如何設法解決它

,可能還有一些人可能會認爲它比使用事件水龍頭容易加上沒有10.6中的遮罩功能,這很容易:)

回答

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

希望這是一些幫助:)

謝謝!

+0

我錯過了關鍵的一步是NSResponder的子類:) – andrewktmeikle 2012-08-07 12:19:12

+0

請提及您錯過的NSResponder子類。 – Rohan 2015-09-03 13:18:36

0

謝謝!我得到了全局鼠標座標 [NSEvent mouseLocation];