いくつかの動的アイテムを含むNSMenuがあります。これらのアイテムはNSMenuDelegateのmenuNeedsUpdateメソッドで作成され、それぞれにrepresentedObjectが割り当てられます。オブジェクトグラフをトリミングし、メニューを閉じたときにすべての動的アイテムを削除して(そしてメニューを再度開いたときにそれらを再作成することで)少しのメモリを取り戻すことを望んでいます。私が抱えている問題は、これをどこでどのように処理すべきかを正確に知ることです。
ドキュメントには、NSMenuのmenuDidCloseはメニューの内容を更新するのに適した場所ではないと記載されています。NSMenuDidEndTrackingNotificationをリッスンする通知を設定し、NSMenuのremoveItem:メソッドを呼び出して、その時点で動的アイテムを削除しています。これはこの状況を処理する正しい方法ですか?
最後に、NSMenuItemでremoveItemを呼び出すと、それに割り当てられている可能性のあるカスタムビュー、およびサブメニューが正しく無効になることを保証できますか?