2012-08-29 78 views
0

我知道,在Mac應用程序的鍵盤事件可以像這樣被觸發:如何檢測在Mac應用程序中按鍵的組合?

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

     default: 
      break; 
    } 
} 

但我怎麼會讓我的應用程序做出反應組合按鍵的,如Konami Code

謝謝!

回答

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

希望幫助

+0

也許使用數組,添加鍵,將直到數組長度匹配爲止。然後清除數組,除非數組中的鍵與代碼匹配。 – beakr

+0

以及我會做的是爲每個控制鍵添加一個字符串,如[UP],然後你可以[數組componentsJoinedByString:@「」],看看它是否與你的代碼相匹配。生病更新我的回答 –

+0

非常感謝。 :-) – beakr

相關問題