2013-02-15 52 views
0

我是可可開發的noob,我試圖做一個非常基本的程序,顯示任何按下的鍵在標籤中的值,然後清除鍵未按下時。我到處搜索,我發現了類似的線程,並在神祕的開發者庫中苦苦掙扎,但我似乎無法讓他們工作。任何幫助都會很棒。記得我很新。如何返回xcode中按鍵的值?

我真正需要的是知道什麼代碼將返回程序運行時按下的鍵的值。我大概可以從那裏弄清楚。

感謝

編輯 - 確定。我已經閱讀了響應鏈上的蘋果文檔幾次,並且我認爲我瞭解了這個概念。但是,我不明白爲什麼我的代碼無法正常工作。這是我的。我認爲我可以把它放在App Delegate的實現之下?我只有一個簡單的默認應用程序。 NSApplication應該將keyDown事件傳遞給應用程序委託,因爲它是第一個響應者,它應該讀取密鑰並記錄它,對嗎?正如你所看到的,我可能不完全理解事件是如何工作的。任何援助將是非常棒的。

- (BOOL)acceptsFirstResponder { 
    return YES; 
} 

- (void)keyDown:(NSEvent *)theEvent 
{ 

    NSString *key = [theEvent characters]; 


    NSLog(@"keyDown [%@]", [theEvent characters]); 
} 
+0

第一步就是要很好地理解響應者鏈。 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/EventArchitecture/EventArchitecture.html#//apple_ref/doc/uid/10000060i-CH3-SW11 – Monolo 2013-02-15 18:58:58

+0

另請參閱[如何處理箭頭Cocoa App中的關鍵事件?](http://stackoverflow.com/q/6000133),這會讓你開始。 – 2013-02-15 19:00:48

回答

1

無論對象是第一個響應者需要實現-(void)keyDown:(NSEvent *)theEvent-(void)keyUp:(NSEvent *)theEvent。您可以通過NSString-(NSString *)character獲取事件中的角色。如果您的應用只有一個窗口,並將其控制器設置爲實現上述方法,則只要您的窗口中沒有其他消耗事件的其他應用,就應該可以工作。