我正在尝试将我们的应用程序移植到 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("App Name", comment:""), forKey:"subject")

显示的选项也取决于。例如,如果项目中有字符串和图像,则不会显示“保存到照片”。

最佳答案

嗯,我似乎有一个有趣的类似问题。我还得到了一个“更多”迷你弹出窗口。但是如果我使用 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 工作得很好:/

关于ios - Mac Catalyst 是否支持 UIActivityViewController?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58290095/

10-12 00:19