目标 c - 未检测到 NSEvent 命令键



我正在尝试检测是否按下了命令键,并且我一生都无法弄清楚以下内容出了什么问题。 我已经覆盖了一个视图以提供以下代码:

- (void)flagsChanged:(NSEvent *)theEvent {
    NSLog(@"flags changed in %@", self);
    BOOL commandKeyPressed = ([theEvent modifierFlags] & NSCommandKeyMask);
    if (commandKeyPressed)
        NSLog(@"command key in %@", self);
}

每当我按下命令键时,我都会看到"标志已更改"消息,但没有看到"命令键输入"消息。 我错过了什么?

BOOL是一个signed char,所以当你把一个int转换为一个BOOL时,你省掉了除了低8位之外的所有位。 在您的情况下,非零位不在低 8 位中。 相反,说

BOOL commandKeyPressed = ([theEvent modifierFlags] & NSCommandKeyMask) != 0;

或者只是

if ([theEvent modifierFlags] & NSCommandKeyMask)

相关内容

  • 没有找到相关文章

最新更新