从帮助菜单中删除(或自定义)“搜索”

问题描述 投票:4回答:4

我的应用程序具有默认的“帮助”菜单。我已删除“帮助”条目,并添加了一个支持条目,该条目链接到我网站上的论坛。

帮助菜单笔尖如下所示:

但是,一旦我启动了应用程序并运行了一个新的菜单项,就会陷入困境:

如何让搜索消失? (或者甚至更好,我怎么能让它发射一个像http://mywebsite.com/support?search=XXXXX这样的参数的网址)。

macos cocoa nsmenu
4个回答
3
投票

您正在寻找NSUserInterfaceItemSearching协议。返回单个搜索结果项并使用它打开您的自定义网址。

- (void)searchForItemsWithSearchString:(NSString *)searchString resultLimit:(NSInteger)resultLimit matchedItemHandler:(void (^)(NSArray *items))handleMatchedItems
{
    handleMatchedItems(@[searchString]);
}

- (NSArray *)localizedTitlesForItem:(id)item
{
    return @[[NSString stringWithFormat:@"Search for '%@' on my website", [item description]]];
}

- (void)performActionForItem:(id)item
{
    // Open your custom url assuming item is actually searchString
}

3
投票

我找到了删除搜索栏的方法(但不是为了自定义它)。

只需指定一个不用于帮助菜单的菜单:

NSMenu *unusedMenu;
unusedMenu = [[NSMenu alloc] initWithTitle:@"Unused"];

NSApplication *theApp;
theApp = [NSApplication sharedApplication];
theApp.helpMenu = unusedMenu;

该文档在NSApplication类的helpMenu属性中提到了这一点。


1
投票

你可能不想摆脱那个搜索栏,因为你仍然可以用它来搜索菜单项!

我相信您知道,如果您的应用程序附带Apple帮助手册,此搜索框将仅显示帮助主题,可以通过以下Apple's documentation制作。

我担心我不知道如何覆盖搜索栏的行为,但如果您不想为您的应用编写文档,我认为保留搜索栏会更好,即使您可以'搜索您的论坛寻求帮助。


0
投票

我在mac开发中的“帮助”菜单中删除了搜索栏,在“帮助”之后输入一个“帮助”后的空格。它看起来很有趣但工作正常.enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.