我已经覆盖了NSOpenGLView来处理键盘事件。事件检测工作正常,但每次按下我听到的按键和恼人的碰撞声。我怎么能说出我的观点呢?
这是我的keyUp:方法的样子:
-(void) keyUp:(NSEvent *)theEvent
{
NSString *characters = [theEvent charactersIgnoringModifiers];
if ( [characters length] != 1 )
return;
unichar keyChar = [characters characterAtIndex:0];
if ( keyChar == NSLeftArrowFunctionKey )
{
//do something
return;
}
if ( keyChar == NSRightArrowFunctionKey )
{
//do something
return;
}
if ( keyChar == NSUpArrowFunctionKey )
{
//do something
return;
}
if ( keyChar == NSDownArrowFunctionKey )
{
//do something
return;
}
}
答案 0 :(得分:3)
很难说没有你的代码,但我猜你已经把事件传递给超级,即使你“消耗”了它。嘟嘟声说“没有人正在处理此事件,因此不允许键盘输入。”如果您使用(处理)事件,请不要将其传递给super,否则系统会假定您的视图未处理该事件。