问题描述
我正在尝试使用 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 使一切按预期工作。