我不熟悉 Apple 的 OSX 我想做的是为 4 根手指滚动(鼠标和触控板)设置一个全局(系统范围)挂钩,并能够更改滚动事件(使其更像 iOS),因为系统偏好不包括它。是的,我认为有很多这样的程序,但我想自己做(更多地学习 OSX 编程)。
我的问题是:Xcode 中最好的模板是什么(有很多模板可供开始,我已经阅读过它们,但我仍然不明白哪一个最适合它)。
我的问题可能有点傻,但我希望它是关于 SO 的话题。
先感谢您。:)
我不熟悉 Apple 的 OSX 我想做的是为 4 根手指滚动(鼠标和触控板)设置一个全局(系统范围)挂钩,并能够更改滚动事件(使其更像 iOS),因为系统偏好不包括它。是的,我认为有很多这样的程序,但我想自己做(更多地学习 OSX 编程)。
我的问题是:Xcode 中最好的模板是什么(有很多模板可供开始,我已经阅读过它们,但我仍然不明白哪一个最适合它)。
我的问题可能有点傻,但我希望它是关于 SO 的话题。
先感谢您。:)
那么你想要开始的模板是 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;
}