首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖OSX PDF工具包视图中“空格”的行为

问覆盖OSX PDF工具包视图中“空格”的行为
EN

Stack Overflow用户
提问于 2013-09-18 08:23:11
回答 1查看 70关注 0票数 0

当按空格时,似乎pdfkit视图的标准行为是切换页面。我们希望在其他事件中使用“空间”按钮(在本例中播放音频)。

将空格设置为菜单中的快捷方式只会在pdfkit视图与之交互之前起作用。之后,行为总是被设置为切换页面。

我们还尝试使用以下代码拦截空间按键事件:

代码语言:javascript
复制
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];
}

但它只是扩大了空间功能,所以音频播放和页面切换。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-18 08:52:07

你还有别的路要走。

子类以覆盖行为。(请记住,这种行为可能从pdfview类的头中的一个超类或类的一部分继承而来。)

查看响应链,哪个对象真正首先获得keyDown消息。拦截和转发,可能暂时更改键视图。

创建一个cover视图,该视图首先处理您关心的keyDown事件,然后将其他事件转发给响应链。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18867234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档