Использование контроллера просмотра в браузере документов с Mac Catalyst

Я только начал экспериментировать с Catalyst. Мое приложение - это приложение на основе браузера документов.

Стандартное диалоговое окно MacOS Finder действительно запускается при нажатии соответствующей кнопки. Главное окно приложения полностью исчезает, когда появляется диалоговое окно Finder, если я не выберу в IB, чтобы контроллер представления браузера документов отображался в "автоматическом" режиме.

Отмена операции действительно возвращает главное окно.

Однако выбор файла приведет к пустому экрану и без результатов. Небольшая отладка показала, что ни одна из функций выбора файлов не вызывается, и я реализовал их все:

func documentBrowser(_ controller: UIDocumentBrowserViewController, didPickDocumentURLs documentURLs: [URL]) {...}

func documentBrowser(_ controller: UIDocumentBrowserViewController, didImportDocumentAt sourceURL: URL, toDestinationURL destinationURL: URL) {...}

func documentBrowser(_ controller: UIDocumentBrowserViewController, failedToImportDocumentAt documentURL: URL, error: Error?) {...}

Используется ли в Catalyst другая функция или дескриптор? В документации ничего не нашел.

РЕДАКТИРОВАТЬ: Я должен уточнить, что я манипулировал приложением, чтобы представить DocumentViewController перед DocumentBrowserViewController, хотя Apple требует, чтобы DocumentBrowserViewController был начальным контроллером представления. Я сделал это, изменив делегата приложения:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

...

// Set the documentViewController to appear first
    self.window = UIWindow(frame: UIScreen.main.bounds)

    let storyboard = UIStoryboard(name: "Main", bundle: nil)

    let initialViewController = storyboard.instantiateViewController(withIdentifier: "main")

    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()

    return true
}

Удаление этого еще ничего не меняет. И проект по умолчанию, созданный из шаблона браузера документов, похоже, работает. Что могло помешать вызову этих методов?

1 ответ

Решение

Я бы предложил реализовать func documentBrowser(_ controller: UIDocumentBrowserViewController, didPickDocumentsAt documentURLs: [URL]) также

Другие вопросы по тегам