I am trying to port over our app to Mac. But it seems that what works for iOS/iPadOS does not show up on Mac app. Nothing popups at all.
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)
Saw an error message that might be related:
setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
I have tried various settings in sandbox with no good result.
PS: Got it working after removing this line: activityController.setValue(NSLocalizedString("App Name", comment:""), forKey:"subject")
What option is shown also dependent. For example, if have a string and an image in items, then Save to Photos will not be shown.
Hmm, I seem to have an interesting similar problem. I also get a "More" mini-popup. But if I use a UIButton instead of a UIView as a target it works.
Calling this code from with UIButton works:
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)
}
Could be a bug in macOS/Catalyst?
It also seems to be dependent on what type of item is shared. Same code with PDF-data wont share on macOS. But a UIImage is working just fine :/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With