У меня есть NSMenu, который содержит ряд динамических элементов. Эти элементы создаются в методе NSMenuDelegate menuNeedsUpdate, и каждому назначается представленный объект. Я хочу обрезать граф объектов и, надеюсь, восстановить немного памяти при закрытии меню, удалив все динамические элементы (и воссоздав их при повторном открытии меню). Проблема, с которой я сталкиваюсь, заключается в том, чтобы точно знать, где и как это должно быть обработано.
В документации указано, что menuDidClose NSMenu не является подходящим местом для обновления содержимого меню. Я настроил уведомление для прослушивания NSMenuDidEndTrackingNotification и удаляю динамические элементы в этот момент с помощью вызова моего метода NSMenu removeItem:. Это правильный способ справиться с этой ситуацией?
Наконец, могу ли я быть уверен, что вызов removeItem для NSMenuItem корректно аннулирует любые пользовательские представления, которые могут быть назначены ему, а также любые подменю?