3
Q
訪問鍵盤API
A
回答
6
看看NSEvent方法addLocalMonitorForEventsMatchingMask:handler :.這將允許您接收在您的應用中發生的事件(特別是您的案例中的keyDown事件),然後您可以使用該方法返回的擊鍵執行任何您想要的操作。下面是如何使用該方法,一個簡單的例子:
self.keystrokes = [NSMutableString string];
[NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask handler:^NSEvent* (NSEvent* event){
NSString *keyPressed = event.charactersIgnoringModifiers;
[self.keystrokes appendString:keyPressed];
return event;
}];
3
截獲所有鍵盤輸入(也鼠標,如果你想的話)檢查出Quartz Events API。 This post有一些代碼演示了API的用法。
相關問題
- 1. C#鍵盤訪問
- 2. 訪問鍵盤列表,鍵盤切換
- 3. GridViewColumnHeaders的鍵盤訪問?
- 4. 如何從trigger.io訪問iPhone撥號器小鍵盤API
- 5. 屏幕鍵盤上的訪問從windev
- 6. 訪問默認鍵盤設備
- 7. iOS鍵盤擴展訪問PHImageManager
- 8. 如何訪問鍵盤背光
- 9. 無法訪問System.Windows.Input下的鍵盤類
- 10. Linux鍵盤通過C指針訪問
- 11. 訪問jqtransform使用鍵盤選擇
- 12. ColorPickerExtender可訪問(僅限鍵盤)
- 13. 訪問鍵盤字段到Django模板
- 14. 鍵盤訪問下拉懸停菜單
- 15. 鍵盤可訪問Facebook發送按鈕
- 16. 尋找鍵盤API
- 17. Python的鍵盤API
- 18. 訪問硬盤
- 19. 有鍵盤shift鍵問題
- 20. EditText鍵盤問題
- 21. 鍵盤 - uinavigationcontroller - 問題
- 22. UITextField鍵盤問題
- 23. Android鍵盤問題
- 24. Android鍵盤問題
- 25. 軟鍵盤問題
- 26. Tablayout鍵盤問題
- 27. TextFiled鍵盤問題
- 28. Android鍵盤問題
- 29. MFMailComposeViewController鍵盤問題
- 30. 鍵盤快捷鍵訪問Chrome書籤(mac)
當然,你不能攔截其他應用程序的關鍵筆畫,你能嗎? – darksky
我相信你可以,但用全局監視器而不是本地監視器(也是NSEvent方法)。 – rdelmar
使用NSEvent API進行全局監控的一個主要問題是,有些事件沒有得到。 (根據操作系統版本的不同,列表會有所不同)。因此,如果您必須在Lion中記錄全局熱鍵,它們就不會顯示出來。如果您關心其中的任何一種情況,您別無選擇,只能下降到CGEventTap級別(從其他答案中)。 – abarnert