我在NSView中使用flagsChanged來觸發事件,當修改鍵被按下或釋放時。但是,我不太明白如何在發生這種情況時獲得密鑰的實際新狀態,而不是手動檢查每個修改鍵的狀態。我目前使用我自己的狀態數組來檢查它,但是這看起來是錯誤的,並且不可靠。我如何正確地做到這一點?在NSView中獲取確切的修飾鍵狀態flagsChanged
3
A
回答
3
只是檢查被傳遞到flagsChanged:
對你是感興趣的各種修飾鍵口罩事件:
- (void)flagsChanged:(NSEvent *)theEvent {
if (([theEvent modifierFlags] & NSAlternateKeyMask) == NSAlternateKeyMask) {
// Do something based on the alt/option key being pressed
} else if (([theEvent modifierFlags] & NSCommandKeyMask) == NSCommandKeyMask){
// Do something based on the command key being pressed
}
}
0
我不確定你的意思是選擇「手動」。 flagsChanged:
方法爲您提供NSEvent*
,並且您可以將該消息傳遞給modifierFlags
消息。
相關問題
- 1. 讀取鍵盤KBD.dll文件並理解修飾符狀態
- 2. 全屏閃動內容中的修飾鍵的狀態
- 3. 使用IOHIDManager獲取修飾鍵事件
- 4. 捕獲修飾鍵Qt
- 5. 鍵修改狀態
- 6. 確定在Java中沒有InputEvent對象的修改鍵狀態
- 7. 如何用修飾符鍵狀態成功地散列System.Windows.Input.Key值?
- 8. 獲取切換元素的狀態
- 9. 獲取修改鍵的狀態簡潔框架
- 10. 如何在OSX上使用FireMonkey獲取當前修飾符狀態?
- 11. 在jQuery中切換狀態不正確
- 12. 取決於狀態的C#訪問修飾符
- 13. pygtk:確定鍵是修飾符
- 14. 確定VirtualKey是否是修飾鍵?
- 15. 捕獲特定的修飾鍵
- 16. 如何監視全局修飾鍵狀態(在任何應用程序中)?
- 17. 如何在狀態機圖中獲取元素的確切類型Enterprise Architect
- 18. 確定切換狀態?
- 19. 獲取顯示桌面切換狀態
- 20. 檢測修飾鍵?
- 21. InputEvent修飾符鍵
- 22. Arduino飾品/ Attiny85 USB:可以讀取所有鍵的狀態?
- 23. Haskell Monad狀態:獲取並修改
- 24. 在修飾器模式中添加狀態
- 25. 狀態欄使用NSview
- 26. 獲取切換按鈕在不同類中的狀態android
- 27. 如何唯一捕獲修飾鍵?
- 28. 如何在NSTextField中正確處理<Return> +修飾鍵?
- 29. 「Windows」鍵的InputGesture修飾符
- 30. 獲取自定義鍵盤中isSticky鍵的當前狀態
嗯,可是我怎麼知道,例如,如果它是這是正確的或左Alt按下或釋放? – toastie
ie ie hold down alt,then right right alt up and down,(([theEvent modifierFlags]&NSAlternateKeyMask == NSAlternateKeyMask)will left true while left alt is down。 – toastie
好的,我發現了這個,好像做了訣竅:http://stackoverflow.com/questions/10715910/is-there-a-way-to-differentiate-between-left-and-right-shift-keys-being-pressed 非常愚蠢的做事方式我必須說:) – toastie