在拖动目标视图(NSView
子类)中,我实现了:
override func performDragOperation(_ draggingInfo: NSDraggingInfo) -> Bool {
// check for Photos promises
var gotPromised = false
draggingInfo.enumerateDraggingItems(options: [], for: self, classes: [NSFilePromiseReceiver.self], searchOptions: [:], using: {(draggingItem, idx, stop) in
let filePromiseReceiver = draggingItem.item
print("got a file promise receiver: \(filePromiseReceiver)")
gotPromised = true
// Use filePromiseReceiver here for your task.
})
return gotPromised
}
运行此命令并将其从Photos.app拖到其他位置时,会收到以下警告:
如何解决我的拖动目标没有此警告?我想将高质量的照片添加到我的应用中。
答案 0 :(得分:0)
好吧。经过一番调查,自己弄清楚了。您需要做很多事情(注册正确的类型,正确枚举项目等),并且如果您只是完全正确地实现承诺接收,就不会出现警告。苹果提供了example project,可以正确实现所有功能。