Мне нужно иметь возможность динамически изменять иерархию NSMenu каждый раз, когда она отображается (добавлять / удалять элементы и т. Д.). Например:
- пользователь запускает сеанс отслеживания в главном меню и выбирает подменю
- обнаружение, что подменю собирается открыть и запустить код для его изменения
- продолжать отслеживать, пользователь снова отслеживает то же подменю: перейти к 2
Итак, для этого у меня есть объект, реализующий протокол NSMenuDelegate . Метод menuNeedsUpdate работает в первый раз (2), но не работает во второй раз, когда открывается подменю. (Вызывается только один раз за сеанс отслеживания)
Метод menuWillOpen вызывается каждый раз, но у документов есть следующее предупреждение, которое, по-видимому, дисквалифицирует при использовании этого подхода:
Не изменять структуру
меню или пункты меню во время этого
способ.
Есть ли способ сделать это?