UIPasteboard – 设置复制的文本过期

UIPasteboard – Set copied text to expire

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

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

objects 键的值应该是多少?

您应该在您的控制器 类 之一中实现接口 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))

你可以吗UIPasteboard.general.setItems

        let expireDate = Date().addingTimeInterval(TimeInterval(120))
        
        UIPasteboard.general.setItems([[UIPasteboard.typeAutomatic: value]],
                options: [UIPasteboard.OptionsKey.expirationDate: expireDate])