2011-09-30 73 views
4

嗨,我是新的可可編程,並想知道如何創建系統範圍事件(如鼠標拖動)的偵聽器。我把這個添加到我的應用程序(我看到了它的另一篇文章):OSX /可可:聽全系統鼠標拖動事件

static CGEventRef eventFunction(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) 
{ 
    printf("event triggered\n"); 
    return event; 
} 

但它永遠不會被調用和IM不知道在哪裏,我打算註冊一個回調。

回答

7

觀看全球鼠標事件的最簡單方法是使用NSEvent類方法addGlobalMonitorForEventsMatchingMask:handler:

例子:

[NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDraggedMask 
             handler:^(NSEvent *event) { 
    NSLog(@"Dragged..."); 
}]; 

注意,在其他應用中,這只是作品,讓這些事件在您的自己的應用程序,你必須添加一個額外的本地事件處理程序。