我在 NSView 中使用 flagsChanged 在按下或释放修改键时触发事件。但是,我不太明白如何在发生这种情况时获取键的实际新状态,除了手动检查每个修饰键的状态。我目前正在使用自己的状态数组来检查它,但这似乎是错误的并且不可靠。我该如何正确地做到这一点?
问问题
1652 次
2 回答
7
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
}
}
于 2013-01-16T03:30:06.237 回答
0
我不确定您所说的“手动”检查是什么意思。该flagsChanged:
方法给你一个NSEvent*
,你可以传递一个modifierFlags
消息。
于 2013-01-15T03:10:42.837 回答