我知道Mac应用中的键盘事件可以这样触发:
- (void) keyDown(NSEvent*)event {
switch ([event keyCode]) {
case someKeyCode:
NSLog(@"blah blah blah");
default:
break;
}
}
但是如何让我的应用对按下的键的组合作出反应,例如Konami Code?
谢谢!
答案 0 :(得分:2)
您需要构建一个历史记录列表,以跟踪过去按下过去的密钥。当密钥列表包含您的“代码”匹配时,无论是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]
}
希望有所帮助