2015-10-08 5 views
0

Есть ли способ настроить контекстное меню, которое появляется при нажатии правой кнопки мыши на панели инструментов (или в строке заголовка окна, содержащего его)? Несколько приложений Apple (XCode, Safari, Mail и, возможно, другие, похоже, могут удалить или скрыть определенные элементы меню), но я не могу найти способ доступа к NSMenu.Как настроить контекстное меню NSToolbar на OS X El Capitan?

Вот что я пытался до сих пор:

  • пытался попасть в меню, как я делал в предыдущих версиях OS X (как описано здесь: How to customize the context menu of NSToolbar?): возвращаемый NSMenu равна нулю
  • пытались переопределить rightMouseDown: в NSWindow содержащей панель инструментов: метод не вызывается
  • пытались переопределить menuForEvent: в представлении содержимого окна (я заменил представление содержимого по умолчанию с помощью пользовательского NSView для этого): метод не вызывается
  • пытался переусердствовать e rightMouseDown: в представлении содержимого окна (я заменил представление содержимого по умолчанию на пользовательский NSView для этого): метод не называется

Любая помощь будет принята с благодарностью.

ответ

0

Я действительно нашел ответ, проверив вещи в отладчике и немного потрудившись. На El Capitan рабочим решением является получение меню как такового:

NSView * theContentView = myWindow.contentView; 
NSMenu * theCustomizeMenu = theContentView.superview.menu;