onDrop(of:isTargeted:perform:)
Defines the destination of a drag-and-drop operation that handles the dropped content with a closure that you specify.
Declaration
nonisolated func onDrop(of supportedContentTypes: [UTType], isTargeted: Binding<Bool>?, perform action: @escaping ([NSItemProvider]) -> Bool) -> some View
Parameters
- supportedContentTypes:
The uniform type identifiers that describe the types of content this view can accept through drag and drop. If the drag-and-drop operation doesn’t contain any of the supported types, then this drop destination doesn’t activate and
isTargeteddoesn’t update. - isTargeted:
A binding that updates when a drag and drop operation enters or exits the drop target area. The binding’s value is
truewhen the cursor is inside the area, andfalsewhen the cursor is outside. - action:
A closure that takes the dropped content and responds appropriately. The parameter to
actioncontains the dropped items, with types specified bysupportedContentTypes. Returntrueif the drop operation was successful; otherwise, returnfalse.
Return Value
A view that provides a drop destination for a drag operation of the specified types.
Discussion
The drop destination is the same size and position as this view.
Make sure to start loading the contents of NSItemProvider instances within the scope of the action closure. Do not perform loading asynchronously on a different actor. Loading the contents may finish later, but it must start here. For security reasons, the drop receiver can access the dropped payload only before this closure returns.