我有一个用 Objective-C 编写的 macOS 应用程序。最初,我不想提供“帮助”菜单,因此我从故事板中删除了“帮助”顶级菜单项。
现在我想添加一个帮助设施,并仍然保留系统提供的菜单搜索栏。我添加了我的应用程序所需的帮助菜单和子菜单项。但搜索栏没有出现。
这是我正在寻找的菜单搜索行为:
当我通过故事板将“帮助”菜单项和子菜单项添加回我的应用程序时,运行应用程序时不会出现搜索栏。是否需要一些魔法才能实现这种行为?
这似乎可以解决问题。首先,我为 NSMenuItem 中标题为“Help”的标签分配了一个值,将其值定义为 TAG_HELP_MENU。然后,我将此代码添加到 AppDelegate.h 文件中的 applicationDidFinishLaunching 方法中:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSMenu *menu = NSApplication.sharedApplication.mainMenu;
for (NSMenuItem *item in menu.itemArray)
{
if (item.tag == TAG_HELP_MENU)
{
NSApplication.sharedApplication.helpMenu = item.submenu;
}
}
return;
}
现在,我得到了我正在寻找的行为。