当按空格时,似乎pdfkit视图的标准行为是切换页面。我们希望在其他事件中使用“空间”按钮(在本例中播放音频)。
将空格设置为菜单中的快捷方式只会在pdfkit视图与之交互之前起作用。之后,行为总是被设置为切换页面。
我们还尝试使用以下代码拦截空间按键事件:
if (!keyDownEventMonitor) {
__weak IBBookViewController *weakSelf = self;
NSEvent * (^monitorHandler)(NSEvent *);
monitorHandler = ^NSEvent * (NSEvent * theEvent){
BOOL handleEvent = weakSelf.view.window != nil
&& theEvent.type == NSKeyDown
&& !theEvent.isARepeat;
if (handleEvent) {
switch ([theEvent keyCode]) {
case 49:
[self audioPlayPauseBtnHit:nil];
break;
default:
break;
}
}
return theEvent;
};
keyDownEventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask handler:monitorHandler];
}但它只是扩大了空间功能,所以音频播放和页面切换。
有什么想法吗?
发布于 2013-09-18 08:52:07
你还有别的路要走。
子类以覆盖行为。(请记住,这种行为可能从pdfview类的头中的一个超类或类的一部分继承而来。)
查看响应链,哪个对象真正首先获得keyDown消息。拦截和转发,可能暂时更改键视图。
创建一个cover视图,该视图首先处理您关心的keyDown事件,然后将其他事件转发给响应链。
https://stackoverflow.com/questions/18867234
复制相似问题