как настроить контекстное меню NSToolbar в OS X El Capitan?

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

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

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

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


person Gregory Van Vooren    schedule 08.10.2015    source источник


Ответы (1)


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

NSView * theContentView = myWindow.contentView;
NSMenu * theCustomizeMenu = theContentView.superview.menu;
person Gregory Van Vooren    schedule 27.10.2015