OSX глобальное перехват мыши / трекпада

Я не знаком с Apple OSX. Я хочу установить глобальный (общесистемный) хук для прокрутки четырьмя пальцами (мышь и трекпад) и иметь возможность изменять события прокрутки (чтобы сделать его более похожим на iOS), потому что Системные настройки не охватывают это. да, я предполагаю, что таких программ много, но я хочу сделать это самостоятельно (чтобы больше узнать о программировании на OSX).

Мой вопрос: какой шаблон лучше всего сделать в XCode (существует множество шаблонов для начала, и я прочитал о них, но я до сих пор не могу понять, какой из них лучше для него).

Мой вопрос может быть немного глупым, но я надеюсь, что это тема для SO.

Заранее спасибо.:)

1 ответ

Решение

Хорошо, шаблон, с которого вы хотите начать, это OS X -> Приложение -> Приложение Какао

Тогда иметь это в своем 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;
}
Другие вопросы по тегам