我在我的应用程序中使用PDFView实例。我想将自己的项目添加到上下文菜单中,并删除一些不适用于我的应用程序的默认项目。
一些默认项目是合适的,因此理想情况下,我将改编现有菜单而不是构建一个新菜单。
创建pdf视图时,不存在有效的pdfView.menu项,因此无法设置自己的委托。
我尝试使用继承自PDFView(声明为NSMenuDelegate)并覆盖menuWillOpen和menuNeedsUpdate的类-但从未调用我的代码。
我可以看到PDFView在所显示的上下文菜单中根据文本选择混合了与文本字段和pdf相关的菜单项,因此显然那里没有固定的菜单。
反正我可以拦截它吗?还是只需要在菜单上强加我自己的菜单?
在MacOS 10.13上。
答案 0 :(得分:3)
子类PDFView
并覆盖func menu(for event: NSEvent) -> NSMenu?
。呼叫super
并调整菜单。
实施func validateMenuItem(_ menuItem: NSMenuItem) -> Bool
以启用和禁用这些项目。