如何自定义PDFView的上下文菜单?

时间:2018-10-01 15:43:22

标签: swift cocoa pdfview

我在我的应用程序中使用PDFView实例。我想将自己的项目添加到上下文菜单中,并删除一些不适用于我的应用程序的默认项目。

一些默认项目是合适的,因此理想情况下,我将改编现有菜单而不是构建一个新菜单。

创建pdf视图时,不存在有效的pdfView.menu项,因此无法设置自己的委托。

我尝试使用继承自PDFView(声明为NSMenuDelegate)并覆盖menuWillOpen和menuNeedsUpdate的类-但从未调用我的代码。

我可以看到PDFView在所显示的上下文菜单中根据文本选择混合了与文本字段和pdf相关的菜单项,因此显然那里没有固定的菜单。

反正我可以拦截它吗?还是只需要在菜单上强加我自己的菜单?

在MacOS 10.13上。

1 个答案:

答案 0 :(得分:3)

子类PDFView并覆盖func menu(for event: NSEvent) -> NSMenu?。呼叫super并调整菜单。

实施func validateMenuItem(_ menuItem: NSMenuItem) -> Bool以启用和禁用这些项目。