我有一个字符串,我想放入UIPasteboard
,它应该在2分钟后过期
UIPasteboard.general.setObjects(objects: [NSItemProviderWriting],
localOnly: true,
expirationDate: Date().addingTimeInterval(120))
objects
键的值应该是多少?
答案 0 :(得分: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))
答案 1 :(得分:1)
您可以UIPasteboard.general.setItems
let expireDate = Date().addingTimeInterval(TimeInterval(120))
UIPasteboard.general.setItems([[UIPasteboard.typeAutomatic: value]],
options: [UIPasteboard.OptionsKey.expirationDate: expireDate])