我有一个字符串,我想放入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))