Как добавить `toggleSidebar` NSToolbarItem в Catalyst? - PullRequest
0 голосов
/ 02 ноября 2019

В своем приложении я добавил элемент toggleSidebar к NSToolbar.

#if targetEnvironment(macCatalyst)
extension SceneDelegate: NSToolbarDelegate {
    func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
        return [NSToolbarItem.Identifier.toggleSidebar, NSToolbarItem.Identifier.flexibleSpace, AddRestaurantButtonToolbarIdentifier]
    }
}
#endif

Однако, когда я компилирую свое приложение в Catalyst, кнопка отключается. Кто-нибудь знает, что еще мне нужно сделать, чтобы подключить его?

1 Ответ

1 голос
/ 02 ноября 2019

Если вы посмотрите документацию для .toggleSidebar / NSToolbarToggleSidebarItemIdentifier, то увидите:

Стандартный идентификатор элемента панели инструментов для боковой панели. Он отправляет toggleSidebar: to firstResponder.

При добавлении этого метода в ваш контроллер представления активируется кнопка на панели инструментов:

Swift:

@objc func toggleSidebar(_ sender: Any) {
}

Objective-C:

- (void)toggleSidebar:(id)sender {
}

Ваша реализация должна будет делать все, что вы хотите, когда пользователь нажимает кнопку на панели инструментов.

Обычно, в реальном приложении MacOS, используя NSSplitViewControllerэтот метод обрабатывается автоматически контроллером разделения представлений, и вам не нужно добавлять собственную реализацию toggleSidebar:.

...