我正在为iOS构建一个Action Extension,它可以简单地操作文本。当前,传递转换后的文本的唯一可行方法是将其复制到UIPasteboard,但我已经看到了一些示例,并通读了很少的文档,以找到“解决方案”。
我尽可能地遵循了很多示例,这是我发现的唯一方法:
func extensionItem(with text: String) -> NSExtensionItem {
let itemProvider = NSItemProvider(item: text as NSSecureCoding?, typeIdentifier: kUTTypeText as String)
let item = NSExtensionItem()
item.attachments = [itemProvider]
return item
}
尽管似乎没有应用程序支持阅读它。
我在野外看到的工作版本在Workflow中。如果创建的工作流只是一个操作-将大小写更改为大写,则可以使用文本选择中的共享表,它将返回NSExtensionItem,并且源应用程序将用新内容替换文本。
我不确定这是否是一般的应用行为,还是仅部分支持此行为。但是由于某种原因,我似乎做错了事。
我发现的唯一提示是,在从Workflow返回的NSExtensionItem中,内容实际上是指向.txt(位于某处)的URL,其中包含新内容。
有人知道我要去哪里吗?
Apple似乎缺少有关此文档。