Mac アプリケーションに機能を実装して、マウス クリックとキーストロークのクリック数を任意の場所 (アプリケーション内または外部) で返したいと考えています。私を案内してください。
ありがとうございました
Mac アプリケーションに機能を実装して、マウス クリックとキーストロークのクリック数を任意の場所 (アプリケーション内または外部) で返したいと考えています。私を案内してください。
ありがとうございました
NSEvent+ (id)addGlobalMonitorForEventsMatchingMask:(NSEventMask)mask handler:(void (^)(NSEvent*))block
はこの機能を提供します。
簡単な例を次に示します。
[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask|NSLeftMouseDownMask handler:^(NSEvent *anEvent){
if(anEvent.type==NSKeyDown)
{
NSLog(@"Had key down event: %@",anEvent);
}
if(anEvent.type==NSLeftMouseDown)
{
NSLog(@"Had left mouse down event: %@",anEvent);
}
}];
-applicationDidFinishLaunching:
アプリケーションのデリゲートのメソッドなど、アプリの初期化中にこれをどこかに追加できます。
上記は、アプリケーションにイベントを登録するのではなく、他のアプリケーションにのみ登録します。アプリでイベントも必要な場合は、ローカル モニターを追加できます (イベントを返すため、少し異なります)。
[NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask|NSLeftMouseDownMask handler:^NSEvent *(NSEvent *anEvent){
if(anEvent.type==NSKeyDown)
{
NSLog(@"Had local key down event: %@",anEvent);
}
if(anEvent.type==NSLeftMouseDown)
{
NSLog(@"Had local left mouse down event: %@",anEvent);
}
return anEvent;
}];
また、NSEvent のドキュメントによると、キー関連のイベントは、アクセシビリティが有効になっている場合、またはアプリケーションがアクセシビリティ アクセスに対して信頼されている場合にのみ監視できます (AXIsProcessTrusted を参照)。