キーボードフックを取り付けました:
CGEventRef myCGEventCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) {
基本的に、私はユーザーのキーボードタップを取り、入力を食べて、代わりに自分の入力を投稿したいと思います。
したがって、彼が「g」をタップした場合、テキストフィールドに「foo」を投稿したいと思うかもしれません。
私はここで見つけたようにテキストフィールドに書いていCGEventPost
ますCGEventSetUnicodeString
:http:
//www.mail-archive.com/cocoa-dev@lists.apple.com/msg23343.html
問題は、プログラムで入力した各文字がキーボードフックに当たっているということです。したがってreturn NULL
、キーボードフックを使用してユーザー入力をブロックすることはできません...これにより、プログラムのすべての入力もブロックされます。
C#のWindows側で「注入された」フラグを使用してそれらを区別しました。1年前の質問を参照してください:条件として低レベルの8ビットフラグを使用するにはどうすればよいですか?
Objective-Cで似たようなものを探しています。