【发布时间】:2026-01-13 11:55:01
【问题描述】:
我有一个动态添加 NSMenuItems 的 NSMenu。 NSMenu 在保持打开状态时未正确刷新。我在NSEventTrackingRunLoopModes调用NSMenu更新方法。
我已经实现了以下方法来更新 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
【问题讨论】:
-
我也有类似的问题。我想在打开时更新 NSMenu,具体取决于用户是否按下选项键。当产品菜单打开并按下选项键时,我需要 Xcode 的行为。这可以通过内置的 NSMenu 方法来完成吗?
标签: objective-c cocoa nsmenuitem nsmenu nsstatusbar