Mac Catalyst поддерживает UIActivityViewController? - PullRequest
2 голосов
/ 08 октября 2019

Я пытаюсь перенести наше приложение на Mac. Но похоже, что то, что работает для iOS / iPadOS, не отображается в приложении Mac. Ничего не всплывает вообще.

let activityController = UIActivityViewController(activityItems:items, applicationActivities:nil)

activityController.setValue(NSLocalizedString("App Name", comment:""), forKey:"subject")
activityController.modalPresentationStyle = .popover

let popoverController = activityController.popoverPresentationController

if popoverController != nil {
      popoverController!.barButtonItem = sender
      popoverController!.permittedArrowDirections = .down
}

self.present(activityController, animated:true, completion:nil)

Увидел сообщение об ошибке, которое может быть связано:

setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access

Я пробовал различные параметры в песочнице без хорошего результата.

PS: после удаления этой строки все заработало: activityController.setValue (NSLocalizedString ("Имя приложения", комментарий: ""), forKey: "subject")

То, какой параметр отображается, также зависит. Например, если в элементах есть строка и изображение, то Сохранить в фотографиях не будет.

1 Ответ

0 голосов
/ 18 октября 2019

Хм, похоже у меня интересная похожая проблема. Я также получаю мини-всплывающее окно "Больше". Но если я использую UIButton вместо UIView в качестве цели, это работает.

Вызов этого кода с помощью UIButton работает:

func shareImage(_ image: UIImage, from fromView: UIView) {
    let activityViewController = UIActivityViewController(activityItems: [image], applicationActivities: nil)
    activityViewController.popoverPresentationController?.sourceView = fromView
    activityViewController.popoverPresentationController?.sourceRect = fromView.bounds
    self.present(activityViewController, animated: true, completion: nil)
}

Может ли быть ошибка в macOS / Catalyst?

Это также зависит от того, какой тип элемента является общим. Тот же код с PDF-данными не будет использоваться в macOS. Но UIImage работает просто отлично: /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...