[更新之後FIRST AWNSER] 我試圖找到一種方法,使用和實施該keydown選項目的C.但是當我嘗試它,它總是失敗......的keydown在Objective-C
燦任何人都會給我舉例說明這是如何完成的。我明白Objective C很好,並不需要完整的解釋。
我刪除了-(void) keyDown
中的方法,因爲它不起作用。
現在這是我的代碼:
#import <Cocoa/Cocoa.h>
@interface ViewController : NSView {
IBOutlet id pressLabel;
}
@end
#import "ViewController.h"
@implementation ViewController
-(BOOL) acceptsFirstResponder
{
return YES;
}
-(BOOL) becomeFirstResponder
{
return YES;
}
-(BOOL) resignFirstResponder
{
return YES;
}
-(void)keyDown:(NSEvent *)theEvent
{
NSString *theUpArrow = [NSString stringWithFormat:@"%c",NSUpArrowFunctionKey];
if([[theEvent characters] isEqualToString:theUpArrow]){
[pressLabel setStringValue:@"Pressed"];
} else {
[super keyDown:theEvent];
}
}
@end
@Muttur:查克說了什麼。查看[Responder Chain Doc](http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/EventArchitecture/EventArchitecture.html#//apple_ref/doc/uid/10000060i-CH3 -SW2)來理解爲什麼這個對象沒有得到'keyDown:'調用它。 – 2011-03-31 21:20:33
我用我現在的課程更新了我的帖子。但它仍然行不通...怎麼了? – Muttur 2011-03-31 21:57:57
你已經添加了一些能夠成爲第一響應者的支持,但你實際上並不在鏈中。看看' - [NSResponder setNextResponder:]'。 – 2011-03-31 23:13:52