不能同时从 UIActivityController 打印和发送电子邮件

问题描述

我正在尝试使用 iOS UIActivityCoontroller 共享一张票(我的构造)以进行打印和发送电子邮件。工单被格式化为 UISimpleTextPrintFormatter 和属性字符串。当对话框出现时,我可以选择打印或发送电子邮件,但不能同时选择两者。我的代码

    let str = NSAttributedString(string: displayString,attributes: attrs)
    let ticket = [UISimpleTextPrintFormatter(attributedText: str)] 
    let ac = UIActivityViewController(activityItems: xxxxx,applicationActivities: nil)

当 xxxxx = 票证时,共享对话框提供标记和打印选项。

当 xxxxx = [str] 时,对话框提供电子邮件、消息、AirDrop、DropBox 等。

当 xxxxx = [ticket,str] 时,对话框提供电子邮件、消息等,但不打印或标记

第三种情况不应该包括所有活动并为每个活动提供适用的数据吗?我错过了什么? (iOS 14.2.1)

编辑:为了测试这一点,我创建了一个新项目,其中一个按钮基本上链接到上面的代码。观察到相同的行为。按预期共享工作时的个人资源。 (Text and print) 合并为一个ActivityItem时,不出现打印选项。

解决方法

这里的问题是票证变量是作为数组创建的。不应该。删除

中的大括号
Let ticket = [UISimpleTextFormatter ...

line 使一切按预期工作。