3

我已经重写了 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;
    }
}
4

1 回答 1

3

没有您的代码很难说,但我猜您将事件传递给 super 即使您“消费”了它。哔声表示“没有人在处理此事件,因此不允许键盘输入。” 如果您使用(处理)该事件,请不要将其传递给 super ,否则系统将假定您的视图未处理该事件。

于 2010-10-25T11:08:23.603 回答