UIPasteboard - 将复制的文本设置为过期

问题描述 投票:1回答:1

我有一个字符串,我想放入UIPasteboard,它应该在2分钟后过期

UIPasteboard.general.setObjects(objects: [NSItemProviderWriting],
    localOnly: true, 
    expirationDate: Date().addingTimeInterval(120))

什么应该是objects键的价值?

ios swift uipasteboard
1个回答
1
投票

您应该在一个控制器类中实现接口NSItemProviderWriting及其所需的方法。

一个非常简单的实现可能看起来像yourString包含要粘贴的字符串:

static var writableTypeIdentifiersForItemProvider: [String] {
    return [ kUTTypeUTF8PlainText as String ]
}

func loadData(withTypeIdentifier typeIdentifier: String, forItemProviderCompletionHandler completionHandler: @escaping (Data?, Error?) -> Void) -> Progress? {
    completionHandler(yourString.data(using: .utf8), nil)
    return nil
}

你应该添加import MobileCoreServices来导入kUTTypeUTF8PlainText的定义。

通常,对于此实现,您使用控制器在上面的示例代码中进行调用。然后,您应该将此作为数组中的值使用:

UIPasteboard.general.setObjects(objects: [ self ],
    localOnly: true, 
    expirationDate: Date(timeIntervalSinceNow: 120))
© www.soinside.com 2019 - 2024. All rights reserved.