2014-02-27 83 views
3

我的應用程序有默認的「幫助」菜單。我刪除了「幫助」條目,並添加了一個支持條目,鏈接到我的網站上的論壇。從幫助菜單中刪除(或自定義)'搜索'

幫助菜單筆尖看起來是這樣的:

Menu in nib

但是,一旦我有應用程序啓動和運行一個新的菜單項已在吸吮:

Menu with search

哪有我讓搜索消失? (或者甚至更好,我怎麼能使它啓動一個帶有參數的URL,如http://mywebsite.com/support?search=XXXXX)。

回答

3

您正在尋找NSUserInterfaceItemSearching協議。 返回單個搜索結果項目並使用它打開您的自定義URL。

- (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 
} 
1

你可能不想擺脫那個搜索欄,因爲你仍然可以使用它來搜索菜單項!

Searching for Menu Items

正如我敢肯定你知道,這個搜索框將只顯示幫助主題,如果你的應用程序帶有一個蘋果幫助手冊,可以通過以下Apple's documentation進行。

恐怕我不知道重寫搜索欄行爲的方法,但如果您不想爲應用程序編寫文檔,我認爲最好保留搜索欄,甚至更好如果你不能搜索你的論壇尋求幫助。

+0

它只是在NSApplication中作爲聚光燈幫助或其他內容簡單提及。 – uchuugaka

1

我找到了刪除搜索欄(但不是自定義它)的方法。

只是分配一個未使用的幫助菜單的菜單:

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

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

說明文檔中提到這一點的實現NSApplication類的helpMenu財產。