Я пытаюсь добавить жест / функцию «Перетаскивание» в мое приложение SwiftUI Ma c.
Я хочу добавить файлы из моей системы / рабочего стола в мое приложение. Это возможно в обычном Swift, который я нашел. Я пытаюсь сделать это в SwiftUI сейчас.
Я нахожу функцию onDrop()
в SwiftUI для представлений. Тем не менее, похоже, что это только для внутренних жестов внутри моего приложения. Я хочу перетаскивать файлы извне.
В Swift вам необходимо зарегистрировать NSView для перетаскиваемых типов.
registerForDraggedTypes([kUTTypeFileURL,kUTTypeImage])
Я подумал о создании NSViewRepresentable и поместил его в мое представление SwiftUI.
Это код, который я придумал, однако я не могу назвать registerForDraggedTyped
.
final class DragDropView: NSViewRepresentable {
func makeNSView(context: NSViewRepresentableContext<DragDropView>) -> NSView {
let view = NSView()
view.registerForDraggedTypes([NSPasteboard.PasteboardType.pdf, NSPasteboard.PasteboardType.png])
return view
}
func updateNSView(_ nsView: NSView, context: NSViewRepresentableContext<DragDropView>) {
}
Есть ли более простое решение для этого в SwiftUI? Я хотел бы использовать эту функцию onDrop (), но это не работает для внешних файлов, не так ли?