0

我知道 Mac 应用程序中的键盘事件可以像这样触发:

- (void) keyDown(NSEvent*)event {
    switch ([event keyCode]) {
        case someKeyCode:
            NSLog(@"blah blah blah");

        default:
            break;
    }
}

但是我如何让我的应用程序对按下的组合键做出反应,例如Konami Code

谢谢!

4

1 回答 1

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]
}

希望有帮助

于 2012-08-29T20:47:02.510 回答