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

Posted

技术标签:

【中文标题】不能同时从 UIActivityController 打印和发送电子邮件【英文标题】:can't both print and email from UIActivityController 【发布时间】:2021-01-06 06:33:17 【问题描述】:

我正在尝试使用 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)

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

【问题讨论】:

【参考方案1】:

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

Let ticket = [UISimpleTextFormatter ...

line 让一切都按预期工作。

【讨论】:

以上是关于不能同时从 UIActivityController 打印和发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

在JS脚本中,多个setInterval之间会出现干扰!大概原因是由于从上到下的执行顺序,导致不能同时执行!

根据选定的活动共享不同的内容 - UIActivityController

Flickity 2 - groupCells 和 pageDots 不能同时工作

正则表达式匹配逗号或换行符,但不能同时匹配两者

xcode build 命令行变量不能同时传递给 UI 测试和 App

Hibernate 4.3 到 5.2 升级 - 不能同时获取多个包