SwiftUI - тип аргумента onDrag 'NSImage' не соответствует ожидаемому типу 'NSItemProviderWriting' - PullRequest
1 голос
/ 24 марта 2020

Я пытаюсь несколькими способами реализовать перетаскивание изображений (из моего приложения в другие приложения) в macOS, но ни один из них не работает. Изображение представляет собой объект Data (), который был взят из буфера обмена, а не URL.

Мой код:

.onDrag {
    return NSItemProvider(object: NSImage(data: self.item.value) ?? NSImage())
}

Он говорит

Аргумент тип 'NSImage' не соответствует ожидаемому типу 'NSItemProviderWriting'

Я попытался с текстом, и он работает. Но не могу найти способ перетащить изображение.

1 Ответ

1 голос
/ 24 марта 2020

Следующее работает как Drag & Drop из тестирования приложения SwiftUI в TextEdit. Тестовое изображение изображение сохраняется в Assets.xcassets

Image("image")
    .onDrag {
        NSItemProvider(item: NSImage(named: "image")?.tiffRepresentation as NSSecureCoding?, 
                       typeIdentifier: kUTTypeTIFF as String)
    }
...