为什么QLPreviewPanel会处理两次事件?

时间:2013-11-10 15:33:10

标签: objective-c macos

我有一些图像可以显示QLPreviewPanel。我设置了QLPreviewPanel的委托。 这是我的代码

    - (BOOL)previewPanel:(QLPreviewPanel *)panel handleEvent:(NSEvent *)event
{

    unsigned short tmpKeyCode = [event keyCode];

    if (tmpKeyCode == 123 || tmpKeyCode == 124 || tmpKeyCode ==125 || tmpKeyCode == 126) {
        NSLog(@"previewPanel arrow key event");
        [self.collectionView keyDown:event];
        return YES;
    }

    return NO;
}

当我触发箭头键事件时,我发现这个委托方法被调用了两次。我的问题出在哪里?

1 个答案:

答案 0 :(得分:0)

我已经知道了这个问题的答案。事件参数包含两种类型,一种是keyDown,另一种是keyUp。所以我只处理两种类型中的一种。看起来像容易。