gpt4 book ai didi

objective-c - 键盘事件 Objective C

转载 作者:行者123 更新时间:2023-12-03 17:43:49 25 4
gpt4 key购买 nike

我在接收 NSView 子类中的键盘事件时遇到问题。

我可以很好地处理鼠标事件,但我的 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"];
}
}

最佳答案

你必须将你的 NSView 设置为第一响应者

- (BOOL)acceptsFirstResponder {
返回是;
}

关于objective-c - 键盘事件 Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4940234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com