这是为了实现一个基于键盘的游戏控制器。左/右箭头使角色行走。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)。