Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does Mac Catalyst supports UIActivityViewController?

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.

like image 494
Lim Thye Chean Avatar asked Nov 26 '22 23:11

Lim Thye Chean


1 Answers

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 :/

like image 71
Sunkas Avatar answered Nov 28 '22 12:11

Sunkas