我正在尝试将我们的应用程序移植到 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/