---
title: DropDelegate
framework: swiftui
role: symbol
role_heading: Protocol
path: swiftui/dropdelegate
---

# DropDelegate

An interface that you implement to interact with a drop operation in a view modified to accept drops.

## Declaration

```swift
@MainActor @preconcurrency protocol DropDelegate
```

## Overview

Overview The DropDelegate protocol provides a comprehensive and flexible way to interact with a drop operation. Specify a drop delegate when you modify a view to accept drops with the onDrop(of:delegate:) method. Alternatively, for simple drop cases that don’t require the full functionality of a drop delegate, you can modify a view to accept drops using the onDrop(of:isTargeted:perform:) method. This method handles the drop using a closure you provide as part of the modifier.

## Topics

### Receiving drop information

- [dropEntered(info:)](swiftui/dropdelegate/dropentered(info:).md)
- [dropExited(info:)](swiftui/dropdelegate/dropexited(info:).md)
- [dropUpdated(info:)](swiftui/dropdelegate/dropupdated(info:).md)
- [validateDrop(info:)](swiftui/dropdelegate/validatedrop(info:).md)
- [performDrop(info:)](swiftui/dropdelegate/performdrop(info:).md)

## See Also

### Moving items using item providers

- [itemProvider(_:)](swiftui/view/itemprovider(_:).md)
- [onDrag(_:preview:)](swiftui/view/ondrag(_:preview:).md)
- [onDrag(_:)](swiftui/view/ondrag(_:).md)
- [onDrop(of:isTargeted:perform:)](swiftui/view/ondrop(of:istargeted:perform:).md)
- [onDrop(of:delegate:)](swiftui/view/ondrop(of:delegate:).md)
- [DropProposal](swiftui/dropproposal.md)
- [DropOperation](swiftui/dropoperation.md)
- [DropInfo](swiftui/dropinfo.md)
