Как настроить контекстное меню PDFView?
Я использую экземпляр PDFView в моем приложении. Я хотел бы добавить свои собственные элементы в контекстное меню и удалить некоторые из них по умолчанию, которые не подходят для моего приложения.
Подходят некоторые элементы по умолчанию, поэтому в идеале я бы адаптировал существующее меню, а не создавал новое.
Когда я создаю представление PDF, не существует действующего элемента pdfView.menu, поэтому я не могу установить свой собственный делегат.
Я попытался использовать класс, унаследованный от PDFView (который объявлен как NSMenuDelegate) и переопределить menuWillOpen и menuNeedsUpdate - но мой код никогда не вызывается.
Я вижу, что PDFView смешивает текстовое поле и связанные с pdf пункты меню, в зависимости от выбора текста, в представленном контекстном меню, поэтому там, очевидно, нет фиксированного меню.
Могу ли я в любом случае перехватить это или мне просто нужно навязать свое меню?
На MacOS 10.13.
1 ответ
Подкласс PDFView
и переопределить func menu(for event: NSEvent) -> NSMenu?
, Вызов super
и адаптировать меню.
Воплощать в жизнь func validateMenuItem(_ menuItem: NSMenuItem) -> Bool
включить и отключить элементы.