我试图为GridView更改拖放的预览图像,而该默认值似乎包括网格中所有可见项。
据我理解,我应该能够设置NSItemProvider.previewImageHandler
块以自定义使用的图像。
我似乎找不到任何示例展示这样一个块的外观,以返回自定义的图像。是否有人可以提供返回Image的此类块的示例?
此外,是否还需要在NSItemProvider上调用loadPreviewImage()方法-我认为不需要,macOS会自动执行此操作。
这是我目前的代码,但是该预览处理程序未被调用。
.onDrag {
let itemProvider = NSItemProvider(object: fileService )
itemProvider.previewImageHandler = {completion, expectedClass, options in
os_log("previewImageHandler called")
let image = NSImage(named: "film")
if let data = image?.tiffRepresentation {
completion?(data as NSSecureCoding, nil)
} else {
let error = NSError(domain:"", code:001, userInfo:[ NSLocalizedDescriptionKey: "Unable to create preview image"])
completion?(nil, error)
}
}
return itemProvider
}