ios - 创建没有 UI 的 iOS Action 扩展

标签 ios swift ios-extensions

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

Action (iOS and macOS; UI and non-UI variants)

我尝试创建一个透明 View ,但结果总是全屏黑色覆盖。
我已经在我的 Info.plist 中将 NSExtensionActionWantsFullScreenPresentation 指定为 NO,但没有任何变化。

知道怎么做吗?

最佳答案

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

例子:

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>.

关于ios - 创建没有 UI 的 iOS Action 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54620639/

相关文章:

ios - 即使更新应用程序图标,共享扩展的应用程序图标也不会在设备中更新

ios - 如何使用 CMake 在 Xcode 中为应用程序扩展创建新目标?

swift - UIApplication.sharedApplication().delegate as! AppDelegate EXC_BREAKPOINT

ios - Swift - UNUsernotification 检查 BadgeNumberIcon 中的更改

ios - 设置对象或调用函数 EXC_BAD_ACCESS 时出错(代码=257)

iOS:无论屏幕大小如何,使用自动调整大小掩码将 UIView 保持在手机底部

ios - 如何在 Swift 中合并多个数组?

ios - 终止应用程序,原因 : 'Storyboard () doesn' t contain a view controller with identifier 'listview'

ios - 在包含部署目标 iOS 7.0 及更早版本的应用程序中使用嵌入式框架

iphone - 如何在 iPhone 应用程序中仅缩放图像的特定部分?