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