我的 OS X 应用程序如何接受从 Desk 在 Cocoa 中拖放图片文件?



当我将文件拖到我的 macOS 应用程序时出现错误,[sandbox] Failed to get a sandbox extension,当我设置App Sandbox值布尔值 no 时,没关系,但我想把我的应用程序放到应用商店,我必须设置App Sandbox是,我该怎么办?

class FYOpenDragFileView: NSView{
override func draggingEnded(_ sender: NSDraggingInfo) {
print("松手了")
setupWithActive(active: false)
}
override func draggingExited(_ sender: NSDraggingInfo?) {
isDraging = false
setupWithActive(active: false)
print("draggingExited 进去又出来")
}
override func updateDraggingItemsForDrag(_ sender: NSDraggingInfo?) {
guard let next = delegate else {
return;
}
next.fileDraging()
print("更新拖动文件")
}
override func performDragOperation(_ sender: NSDraggingInfo) -> Bool {
guard let items = sender.draggingPasteboard.pasteboardItems else{
return false
}
var datas = [Data]()
for i in 0..<items.count{

let item = items[i] .string(forType: .fileURL)
if item != nil {
// this have an error 
//[sandbox] Failed to get a sandbox extension
let da = try? Data(contentsOf: URL(string: item!)!)
guard let next = da else {
continue
}
datas.append(next)
}
}
QiniuUploadManger.uploadImage(nil, data: datas)
return true
}
}

使用沙盒,您必须为应用设置适当的"权利"才能接收拖放文件,这可能就是您收到此错误的原因。

启用沙盒时,应已为您生成授权文件。有关详细信息,请参阅此 Apple 文档。

最新更新