我知道 Mac 应用程序中的键盘事件可以像这样触发:
- (void) keyDown(NSEvent*)event {
switch ([event keyCode]) {
case someKeyCode:
NSLog(@"blah blah blah");
default:
break;
}
}
但是我如何让我的应用程序对按下的组合键做出反应,例如Konami Code?
谢谢!
我知道 Mac 应用程序中的键盘事件可以像这样触发:
- (void) keyDown(NSEvent*)event {
switch ([event keyCode]) {
case someKeyCode:
NSLog(@"blah blah blah");
default:
break;
}
}
但是我如何让我的应用程序对按下的组合键做出反应,例如Konami Code?
谢谢!
您将需要建立一个历史列表来跟踪过去按下的键无论多长时间。并且当键列表包含与您的“代码”匹配时,无论它是 konami 代码还是其他。您的匹配会触发另一个事件并清除密钥历史记录。
通过控制键的字符串将数据添加到数组中
static NSMutableArray *array = [NSMutableArray array];
[array addObject:@"[UP]"]; // etc for each key you would have a special key
然后你可以像这样测试
if ([[array componentsJoinedByString:@""] isEqualToString:@"[UP][UP][DOWN][DOWN]"]){
array = [NSMutableArray array];
[self commandfound]
}
希望有帮助