Как получить панель поиска в NSToolbar в приложении Catalyst? - PullRequest
1 голос
/ 06 октября 2019

Я видел, как некоторые приложения Catalyst добавляли панель поиска к NSToolbar, и мне было интересно, как я могу сделать то же самое. Должен ли я импортировать AppKit / Cocoa, чтобы получить NSSearchField и фактический NSToolbar? Или есть какой-то способ с UISearchBars, который я просто не вижу? Любая помощь была бы отличной, спасибо.

Я пытался импортировать AppKit и Cocoa (используя загрузчик пакетов), но я не думаю, что сделал все правильно. Если у кого-то есть твердое руководство о том, как это сделать, пожалуйста, свяжите его.

Я также попытался создать UIBarButtonItem с настраиваемым представлением UISearchBar, который ничего не делает. (это можно найти ниже)

Это найдено в случае переключения на itemIdentifier.rawValue (в функции itemForIdentifier панели инструментов)

let search = UISearchBar()
search.sizeToFit()
let button = UIBarButtonItem(customView: search)
button.width = 100
let toolbarItem = NSToolbarItem(itemIdentifier: itemIdentifier, barButtonItem: button)
toolbarItem.isBordered = true
toolbarItem.isEnabled = true
return toolbarItem

Ответы [ 2 ]

1 голос
/ 13 октября 2019

Благодаря mmackh панель поиска может быть добавлена ​​так же легко, как и любой другой элемент панели инструментов. Спасибо всем, кто посмотрел на это.

https://github.com/mmackh/Catalyst-Helpers


Swift Пример

Как только вы добавите файлы в свой проект (и в этом случае ваш соединительный заголовок), просто верните его, как любой другой элемент панели инструментов.

let item = NSToolbarItem_Catalyst.searchItem(withItemIdentifier: "searchBar", textDidChangeHandler: { string in
    print(string)
})
0 голосов
/ 11 октября 2019

Я нашел решение, которое работает для меня, возможно, оно будет достаточно и для вас.

Хотя я не могу создать панель поиска на панели инструментов, я могу создать кнопку, которая выглядит какпанель поиска. Затем эта кнопка переключает видимость панели поиска в приложении Catalyst.

Вот код (obj-c) для него:

    UIImageSymbolConfiguration *conf = [UIImageSymbolConfiguration configurationWithPointSize:32 weight:UIImageSymbolWeightRegular];
    UIImage *backImage = [UIImage systemImageNamed:@"magnifyingglass" withConfiguration:conf];
    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithImage:backImage style:UIBarButtonItemStylePlain target:self action:@selector(searchButtonAction)];
    NSToolbarItem *item = [NSToolbarItem itemWithItemIdentifier:itemIdentifier barButtonItem:buttonItem];
    item.title = @"Search";
    return item;

А вот изображения того, как это выглядит в приложении: iOS search bar off iOS search bar on

В качестве бонуса вы можете использовать какой-нибудь не поддающийся усечению пробел (, как этот ), чтобы добавитьпробел после строки «Поиск», что делает кнопку еще более похожей на правильную строку поиска.

Вот как это выглядит:

final searchbar

...