Использование диспетчера просмотра браузера документов с Mac Catalyst - PullRequest
0 голосов
/ 10 октября 2019

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

Стандартный диалог поиска MacOS действительно запускается при нажатии соответствующей кнопки. Главное окно приложения полностью исчезает, когда появляется диалоговое окно 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 Ответ

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

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

...