首页 > 解决方案 > 不能同时从 UIActivityController 打印和发送电子邮件

问题描述

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

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

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

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

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

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

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

标签: iosswiftdialogshareuiactivitycontroller

解决方案


这里的问题是票据变量被创建为一个数组。不应该。去除支架中的支架

Let ticket = [UISimpleTextFormatter ...

行让一切按预期工作。


推荐阅读