2011-08-18 17 views
1

我正在搞亂Cocoa文本系統,而現在,我需要做的就是檢測用戶何時按下Tab或Return鍵。檢測可可中的鍵盤事件,特別是返回/製表鍵

不知道這是否有所作爲,但我以編程方式從頭建立了文本編輯器,所以我只有對NSTextStorage對象的引用,因爲其他所有內容都已發佈。

任何幫助將不勝感激。 我爲移動問題表示歉意。

+1

如果您從頭開始構建文本編輯器,您是如何處理所有其他鍵盤輸入的? – jtbandes

+0

如果你自己無法回答,我會嚴肅地質疑從頭創建文本編輯器的智慧。 'NSTextView'和相關的類提供了一個非常*密集的,複雜的,功能全面的文本處理系統,多年來由專家構建。如果你從頭開始,那麼你可以改進它是非常非常不可能的。爲了您的用戶,*請*僅使用'NSTextView'及其相關類來做你想做的事。如果有什麼理由讓你覺得它不起作用,只需要問問,這裏的某個人就可以提供幫助。 –

+0

我有8個NSTextContainers與相應的NSTextViews。這是我不僅僅使用IB的NSTextView的唯一原因。 – alf

回答

2
- (void)keyDown: (NSEvent *) event { 

    if ([event keyCode] == 13){ //For return key 

    } 
    if ([event keyCode] == 9){ //For tab key 

    } 

} 

該方法將被覆蓋,並將在任何按鍵被按下時被調用。

+0

keyCodes非常有幫助,謝謝。雖然我似乎無法得到該方法的工作。我是否需要做任何有關將文本附加到nstextstorage對象的內容?還是其他什麼?我現在很迷路。 – alf

+0

是的,應該仔細閱讀你的問題:你需要一個適當的類嘗試子類'NSWindow'或'NSWindowController'.http://stackoverflow.com/questions/1143843/keydown-and-cocoa-sample – Dair