Macos OSX全局鼠标/轨迹板挂钩

Macos OSX全局鼠标/轨迹板挂钩,macos,templates,xcode5,event-hooking,Macos,Templates,Xcode5,Event Hooking,我不熟悉苹果的OSX 我想做的是设置一个全局(系统范围)钩子,用于4个手指滚动(鼠标和触摸板),并能够 更改滚动事件(使其更像iOS),因为系统首选项不包括它。 是的,我假设有很多这样的程序,但我想让它成为我自己(更多地学习OSX编程) 我的问题是:Xcode中最好的模板是什么(有很多模板要开始,我已经读过了,但我仍然不知道哪一个最适合它) 我的问题可能有点傻,但我希望它是关于这样的主题 提前谢谢。:) 好的,您想要开始使用的模板是OS X->Application->Cocoa Applica

我不熟悉苹果的OSX 我想做的是设置一个全局(系统范围)钩子,用于4个手指滚动(鼠标和触摸板),并能够 更改滚动事件(使其更像iOS),因为系统首选项不包括它。 是的,我假设有很多这样的程序,但我想让它成为我自己(更多地学习OSX编程)

我的问题是:Xcode中最好的模板是什么(有很多模板要开始,我已经读过了,但我仍然不知道哪一个最适合它)

我的问题可能有点傻,但我希望它是关于这样的主题


提前谢谢。:)

好的,您想要开始使用的模板是OS X->Application->Cocoa Application

那么,在AppDelegate.m中加入这一点是一个很好的开始,因为它可以连接到全局鼠标/轨迹板事件:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    CFMachPortRef eventTap = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault, kCGEventMaskForAllEvents, handleCGEvent, (__bridge void *)(self));
    CFRunLoopSourceRef runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0);
    CFRunLoopAddSource(CFRunLoopGetMain(), runLoopSource, kCFRunLoopCommonModes);
    CGEventTapEnable(eventTap, true);
}

CGEventRef handleCGEvent(CGEventTapProxy proxy, CGEventType type, CGEventRef eventRef, void *refcon) 
{
    if (type == kCGEventLeftMouseDown /*|| type == kCGEventMouseMoved || type == kCGEventMouseDragged || ...*/) {

    }

    return eventRef;
}

当你说“全局钩子”时,你是什么意思?@MichaelDautermann我指的是系统范围的钩子(不仅仅是我的应用程序)。