删除动态NSMenuItem的我有一个包含一些动态项目的NSMenu。这些项目是在NSMenuDelegate的menuNeedsUpdate方法中创建的,并且每个都分配了一个representationObject。我正在修剪对象图形,希望通过删除所有动态项目(并在菜单重新打开时重新创建它们)来关闭菜单时重新获得一点内存。我遇到的问题是确切知道应该在哪里以及如何处理。当从一个NSMenu
的文档指出NSMenu的menuDidClose不更新菜单的内容合适的地方。我已经设置了一个通知来侦听NSMenuDidEndTrackingNotification,并通过调用我的NSMenu的removeItem:方法删除当前的动态项目。这是处理这种情况的正确方法吗?
最后,我可以放心,打电话的removeItem上NSMenuItem将正确废掉可以分配给它的任何自定义视图,以及任何子菜单?