创建没有UI的iOS操作扩展

时间:2019-02-10 20:21:30

标签: ios swift ios-extensions

我正在尝试创建类似于iOS中可用的系统“复制”操作的操作扩展。
我找到了不同的答案,说不可能有非全屏UI,但是根据Apple Official Documentation,可能没有UI(我想像是在“复制”操作中一样)。

  

操作(iOS和macOS; UI和非UI变体)

我尝试创建透明视图,但结果始终是全屏黑色覆盖。
我已经在NSExtensionActionWantsFullScreenPresentation中将NO设置为Info.plist,但是没有任何变化。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

要回答我自己的问题:实际上可以通过将属性NSExtensionPrincipalClass分配给实现NSExtensionRequestHandling协议的类来在iOS上创建非UI动作扩展。

示例:

class ActionRequestHandler: NSObject, NSExtensionRequestHandling {

    var extensionContext: NSExtensionContext?

    func beginRequest(with context: NSExtensionContext) {
        // Do not call super in an Action extension with no user interface
        self.extensionContext = context

        // Do stuff with the context

    }
}

创建扩展的最简单方法是添加一个新目标(“文件”>“新建”>“目标”),选择“操作扩展”,然后在“ 操作类型”中选择无用户界面 / strong>。

答案 1 :(得分:0)

  

在iOS中,一个Action扩展程序:

     
      
  • 帮助用户以其他方式查看当前文档

  •   
  • 始终显示在操作表或全屏模式视图中

  •   
  • 仅在主机应用明确提供的情况下接收选定内容

  •