Изменить структуру NSMenu при каждом открытии?

Мне нужно иметь возможность динамически изменять иерархию NSMenu каждый раз, когда она отображается (добавлять / удалять элементы и т. д.). Например:

  1. пользователь запускает сеанс отслеживания в главном меню и выбирает подменю.
  2. обнаруживает, что подменю собирается открыть и запускает код для его изменения.
  3. продолжайте отслеживать, пользователь снова отслеживает то же подменю: goto 2

Для этого у меня есть объект, реализующий протокол NSMenuDelegate . Метод menuNeedsUpdate работает в первый раз (2), но не работает во второй раз, когда открывается подменю. (Вызывается только один раз за сеанс отслеживания)

Метод menuWillOpen вызывается каждый раз, но в документах есть следующее предупреждение, которое, похоже, не позволяет использовать этот подход:

Не изменяйте структуру меню или пунктов меню во время этого метод.

Есть ли способ сделать это?

8
задан Chris 13 March 2011 в 22:22
поделиться