4

我想Add to iCloud Drive, Add to Reading List, Save to Files & Print从共享表中排除。

我可以使用以下代码排除添加到阅读列表和打印选项。因为已经提供了 这些类型属性。

activityViewController.excludedActivityTypes = [ UIActivityType.print, UIActivityType.addToReadingList ]

在我搜索谷歌之后,我找到了一种删除类型属性中未包含的选项的方法,如下所示(例如:添加到 iCloud 驱动器)

UIActivityType(rawValue: "com.apple.CloudDocsUI.AddToiCloudDrive")

我想知道我们如何找到行值以排除未在类型属性中定义的其他选项。例如保存到文件

4

2 回答 2

3

确定哪些UIActivityType值用于未记录类型的最简单方法是添加一个completionWithItemsHandler:块,该块记录UIActivityType调用它的参数。然后使用您的应用分享某些内容并选择您要为其查找价值的活动类型。将调用完成处理程序,记录其类型。

或者,您可以创建自己的实现对象UIActivityItemSource,将其添加到您正在共享和实现的项目活动中activityViewController(_:itemForActivityType:)并记录类型。

于 2017-11-01T16:36:04.127 回答
3

为了我的目的,我尝试了 Geoff 的建议(UIActivityType通过实现 a来记录completionWithItemsHandler):禁用“添加到笔记”、“添加提醒”和“保存到文件”。它适用于“保存到文件”除外。

Save to Files 的记录类型与UIActivityType此问题中列出的类型相同,并且将其添加到excludedActivityTypesiOS 11.1.2 后不起作用。其他人(这里这里)也遇到了这个问题。

目前似乎没有办法排除 Save To Files UIActivityType。希望 Apple 会尽快更新有关如何执行此操作的文档。

于 2017-12-14T20:49:47.033 回答