私はswiftに小さなユーティリティを書き込んで、IOHIDManagerRegisterInputValueCallback
を使ってコールバックを登録します。私は自分自身の後で良い市民とクリーンアップをしようとしています。コールバックパスNULLの登録を解除するには:即時にIOKit.IOHIDValueCallbackにnilをキャストする方法
[ドキュメント](https://developer.apple.com/library/content/documentation/DeviceDrivers/Conceptual/HID/new_api_10_5/tn2187.html#//apple_ref/doc/uid/TP40000970-CH214-SW61)は1がNull
注意して登録機能を呼び出す必要が登録を解除することを言います。
無記号が期待される引数の型 'IOHIDValueCallback'(別名「@convention(C)(オプション、のInt32、と互換性がありません。残念ながら
IOHIDManagerRegisterInputValueCallback(hidManager, nil , nil);
が言ってコンパイルされません
オプション、IOHIDValue) - >() ')
どのようにnilを正しい型にキャストできますか?ここで
はコンパイルする必要があり、サンプルコードです:私はもう一度そのプロジェクトを開いているときに、完全なプロジェクト、チェックアウト https://github.com/jeantil/autokbiswをしたい場合import Foundation
import Carbon
import IOKit
import IOKit.usb
import IOKit.hid
class IOEventManager{
func start()->Void{
let hidManager = IOHIDManagerCreate(kCFAllocatorDefault, IOOptionBits(kIOHIDOptionsTypeNone));
let context = UnsafeMutableRawPointer(Unmanaged.passUnretained(self).toOpaque());
IOHIDManagerRegisterInputValueCallback(hidManager, nil, context);
}
}
をし、長い後IOKeyEventMonitor#deinit