好的,我了解如何从 NSEvent 确定是否按下了修饰键:
if ([theEvent modifierFlags] & NSAlternateKeyMask) {
// The Option/Alt key was pressed
}
但这也会同时捕获选项键和另一个修饰键,例如 Option+Shift 或与选项键的任何组合。
如何仅测试optionkey 而没有其他内容?
好的,我了解如何从 NSEvent 确定是否按下了修饰键:
if ([theEvent modifierFlags] & NSAlternateKeyMask) {
// The Option/Alt key was pressed
}
但这也会同时捕获选项键和另一个修饰键,例如 Option+Shift 或与选项键的任何组合。
如何仅测试optionkey 而没有其他内容?
像这样:
const NSUInteger kNotAlt = NSAlphaShiftKeyMask | NSShiftKeyMask | NSControlKeyMask | NSCommandKeyMask;
NSUInteger modFlags = [theEvent modifierFlags];
if (((modFlags & NSAlternateKeyMask) != 0) &&
((modFlags & kNotAlt) == 0))
{
// Only alt was pressed
}
你也可以试试
NSUInteger modFlags = [theEvent modifierFlags];
if ((modFlags & NSCommandKeyMask) && !(modFlags & ~NSCommandKeyMask))
{
// Only alt was pressed
}