<!--
{
  "documentType" : "article",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/drag-and-drop-customization",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Drag and drop customization"
}
-->

# Drag and drop customization

Extend the standard drag and drop support for text views to include custom types of content.

## Discussion

The [`UITextField`](/documentation/UIKit/UITextField) and [`UITextView`](/documentation/UIKit/UITextView) classes provide built-in support for dragging and dropping text and images. You can extend this support to your own custom data types by adding a text drag delegate or text drop delegate to your views. Your text drag delegate adopts the [`UITextDragDelegate`](/documentation/UIKit/UITextDragDelegate) protocol and is responsible for providing the items to be dragged. Your text drop delegate adopts the [`UITextDropDelegate`](/documentation/UIKit/UITextDropDelegate) protocol and handles drops containing items with your custom data types.

## Topics

### Text view additions

[`UITextDragDelegate`](/documentation/UIKit/UITextDragDelegate)

The interface for customizing the behavior of a drag activity for a text view.

[`UITextDropDelegate`](/documentation/UIKit/UITextDropDelegate)

The interface for configuring a text view’s drop behavior.

[`UITextDraggable`](/documentation/UIKit/UITextDraggable)

The interface that determines if a text view is a drag source.

[`UITextDragOptions`](/documentation/UIKit/UITextDragOptions)

A set of options that determine the behavior of a draggable text view.

[`UITextDroppable`](/documentation/UIKit/UITextDroppable)

The interface that determines if a text view is a drop destination.

[`UITextDropEditability`](/documentation/UIKit/UITextDropEditability)

The text-drop editability styles for noneditable text views.

### Drag content

[`UITextDragRequest`](/documentation/UIKit/UITextDragRequest)

The interface for describing the attributes of a drag activity originating in a text view.

[`UITextDragPreviewRenderer`](/documentation/UIKit/UITextDragPreviewRenderer)

Renders previews of text dragged by the user.

### Drop management

[`UITextDropRequest`](/documentation/UIKit/UITextDropRequest)

The interface for specifying the attributes of a drop request for a text view.

[`UITextDropProposal`](/documentation/UIKit/UITextDropProposal)

A proposed configuration for the behavior of a text drop interaction.

[`Action`](/documentation/UIKit/UITextDropProposal/Action)

The text drop action styles for text views.

[`Performer`](/documentation/UIKit/UITextDropProposal/Performer)

The performers that are responsible for handling the drop operation.

[`ProgressMode`](/documentation/UIKit/UITextDropProposal/ProgressMode)

The text drop progress styles for user-visible progress indication.

### Pasteboard support

[`UITextPasteItem`](/documentation/UIKit/UITextPasteItem)

The interface for obtaining information about, and interacting with, a text item for pasting or dropping.

[`UISearchTextFieldPasteItem`](/documentation/UIKit/UISearchTextFieldPasteItem)

A protocol that supports pasting tokens.

[`UITextPasteDelegate`](/documentation/UIKit/UITextPasteDelegate)

The interface for handling pasting and dropping of text, using item providers.

[`UITextPasteConfigurationSupporting`](/documentation/UIKit/UITextPasteConfigurationSupporting)

The interface for text-oriented responder objects to participate in the unified paste and drop system in iOS.



---

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)