0
我無法在NSView的子類中接收鍵盤事件。鍵盤事件目標C
我可以很好地處理鼠標事件,但是我的keyDown和keyUp方法從不會被調用。根據文件,我的理解是,兩種事件都遵循相同的層次結構,但這看起來並非如此。
這是第一個響應者的問題?某個領域抓住了焦點?我試過壓倒但沒有運氣。
任何見解將不勝感激。
如果你想看到的..這是一個自定義的NSView類中:
#pragma mark -
#pragma mark I/O Events
-(void)keyDown:(NSEvent *)theEvent {
NSLog(@"Sup brah!");
}
-(void)keyUp:(NSEvent *)theEvent {
NSLog(@"HERE");
}
// This function works great:
-(void)mouseDown:(NSEvent *)theEvent {
NSNumber *yeah = [[NSNumber alloc] initWithBool:YES];
NSNumber *nah = [[NSNumber alloc] initWithBool:NO];
NSString *asf = [[NSString alloc] initWithFormat:@"%@", [qcView valueForOutputKey:@"Food_Out"]];
if ([asf isEqualToString:@"1"]) {
[qcView setValue:nah forInputKey:@"Food_In"];
best_food_x_loc = convertToQCX([[qcView valueForOutputKey:@"Food_1_X"] floatValue]);
best_food_y_loc = convertToQCY([[qcView valueForOutputKey:@"Food_1_Y"] floatValue]);
NSLog(@"X:%f, Y:%f",best_food_x_loc, best_food_y_loc);
} else {
[qcView setValue:yeah forInputKey:@"Food_In"];
}
}
僅供參考,您的` mouseDown:`方法正在泄漏內存。 – 2011-02-09 00:55:23