<!--
{
  "availability" : [
    "iOS: 13.4.0 -",
    "iPadOS: 13.4.0 -",
    "macCatalyst: 13.4.0 -",
    "macOS: 10.15.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/DropDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI12DropDelegateP"
  },
  "title" : "DropDelegate"
}
-->

# DropDelegate

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

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

## Overview

The [`DropDelegate`](/documentation/SwiftUI/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:)`](/documentation/SwiftUI/View/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:)`](/documentation/SwiftUI/View/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:)`](/documentation/SwiftUI/DropDelegate/dropEntered(info:))

Tells the delegate a validated drop has entered the modified view.

[`dropExited(info:)`](/documentation/SwiftUI/DropDelegate/dropExited(info:))

Tells the delegate a validated drop operation has exited the modified
view.

[`dropUpdated(info:)`](/documentation/SwiftUI/DropDelegate/dropUpdated(info:))

Tells the delegate that a validated drop moved inside the modified view.

[`validateDrop(info:)`](/documentation/SwiftUI/DropDelegate/validateDrop(info:))

Tells the delegate that a drop containing items conforming to one of the
expected types entered a view that accepts drops.

[`performDrop(info:)`](/documentation/SwiftUI/DropDelegate/performDrop(info:))

Tells the delegate it can request the item provider data from the given
information.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)