如何以高质量将照片从照片拖放到我的Cocoa应用程序中?

时间:2019-02-23 14:45:42

标签: cocoa drag-and-drop photo nsdragginginfo nsdraggingdestination

在拖动目标视图(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拖到其他位置时,会收到以下警告:

Photos warning

如何解决我的拖动目标没有此警告?我想将高质量的照片添加到我的应用中。

1 个答案:

答案 0 :(得分:0)

好吧。经过一番调查,自己弄清楚了。您需要做很多事情(注册正确的类型,正确枚举项目等),并且如果您只是完全正确地实现承诺接收,就不会出现警告。苹果提供了example project,可以正确实现所有功能。