NSMenuItems が動的に追加された NSMenu があります。NSMenu を開いたままにしておくと、適切に更新されません。で NSMenu update メソッドを呼び出していNSEventTrackingRunLoopModes
ます。
NSMenu を更新するために、次のメソッドを実装しました。
- (void)menuNeedsUpdate:(NSMenu *)menu {
for (NSInteger index = 0; index < count; index++)
[self menu:menu updateItem:[menu itemAtIndex:index]
atIndex:index
shouldCancel:NO];
}
- (BOOL)menu:(NSMenu *)menu updateItem:(NSMenuItem *)item atIndex:(NSInteger)index shouldCancel:(BOOL)shouldCancel`
- (NSInteger)numberOfItemsInMenu:(NSMenu *)menu