Objective-C:在按下另一个键时检测"shift"按键



这是为了实现一个基于键盘的游戏控制器。左/右箭头使角色行走。shift+left/right使角色运行。

这是我目前使用的代码:

- (void)keyDown:(NSEvent *)event{
    if ([event modifierFlags] & NSShiftKeyMask) {
        NSLog(@"Shift key pressed");
    }
    // logic follows
}

如果在按下箭头键之前按下shift,则效果良好。但如果按下箭头键,需要加速,按下shift不会导致任何事情发生。。。

所以,我看到了这样的答案:https://stackoverflow.com/a/420691/987818

但我不明白这个NSResponder在哪里使用。关于信息,我使用Cocos2D(objc游戏引擎)。

感谢提供任何线索:-)J.

您需要在实现此-keyDown:方法的同一类中实现flagsChanged:,或者只在任何能够捕获此事件的NSResponder子类中实现(例如NSApplication)。

最新更新