0

我不熟悉 Apple 的 OSX 我想做的是为 4 根手指滚动(鼠标和触控板)设置一个全局(系统范围)挂钩,并能够更改滚动事件(使其更像 iOS),因为系统偏好不包括它。是的,我认为有很多这样的程序,但我想自己做(更多地学习 OSX 编程)。

我的问题是:Xcode 中最好的模板是什么(有很多模板可供开始,我已经阅读过它们,但我仍然不明白哪一个最适合它)。

我的问题可能有点傻,但我希望它是关于 SO 的话题。

先感谢您。:)

4

1 回答 1

2

那么你想要开始的模板是 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;
}
于 2014-03-31T19:23:23.533 回答