2011-05-16 32 views
4

我對此做了一點研究,發現 this 問題。我實現了那裏使用的代碼,但沒有發生任何事情。下面是我使用的確切代碼:在可可中使用箭頭鍵?

.h文件中

#import <Cocoa/Cocoa.h> 


@interface Test : NSView { 

} 

-(void)keyUp:(NSEvent*)event; 
-(void)keyDown:(NSEvent*)event; 

@end 

.m文件

#import "Test.h" 


@implementation Test 

- (void)keyDown:(NSEvent*)event { 
    NSLog(@"A key has been pressed"); 
    switch([event keyCode]) { 
     case 126:  // up arrow 
     case 125:  // down arrow 
     case 124:  // right arrow 
     case 123:  // left arrow 
      NSLog(@"Arrow key pressed!"); 
      break; 
     default: 
      NSLog(@"Key pressed: %@", event); 
      break; 
    } 
} 

@end 

有什麼不對?有什麼我必須添加到界面?

編輯:好吧,事實上確實發生。我的電腦在我身上嘟be着。而已。

+0

您是否已將視圖添加到NSWindow? – 2011-05-16 16:53:47

+0

我相信我有,是的。我甚至將課程設置爲測試,並使視圖覆蓋整個窗口。 – Justin 2011-05-16 16:57:47

+0

可能重複[如何處理Cocoa應用程序中的箭頭鍵事件?](http://stackoverflow.com/questions/6000133/how-to-handle-arrow-key-event-in-cocoa-app) – 2011-05-16 17:18:14

回答

6

實施acceptsFirstResponder

- (BOOL)acceptsFirstResponder 
{ 
    return YES; 
} 

此外,請確保您的看法是第一個響應者(例如,通過視圖中點擊)。

+0

好的。有效。謝謝你的幫助。 – Justin 2011-05-16 16:59:42