0

私は Apple の OSX に精通していません。私がやりたいことは、4 本の指のスクロール (マウスとトラックパッド) 用にグローバル (システム全体) のフックを設定し、スクロール イベントを変更できるようにすることです (より iOS のようにするため)。システム設定はそれをカバーしていません。はい、そのようなプログラムはたくさんあると思いますが、自分で作りたいです(OSXプログラミングをもっと学ぶために)。

私の質問は次のとおりです:Xcodeでそうするのに最適なテンプレートは何ですか(開始するテンプレートはたくさんあり、それらについて読んだことがありますが、どれが最適かまだわかりません)。

私の質問は少しばかげているかもしれませんが、SOの話題になることを願っています.

前もって感謝します。:)

4

1 に答える 1

2

開始するテンプレートは、OS X -> アプリケーション -> Cocoa アプリケーションです。

次に、これを 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 に答える