Source: Apple Inc. Canonical content at https://developer.apple.com/design/human-interface-guidelines/drag-and-drop. This file is a structured index of that content, snapshot 2025-02-02. Apple HIG text and imagery are © Apple Inc.; this repository provides organization and cross-referencing for AI agent consumption only.
Drag and drop
-
In visionOS, people pinch and hold a virtual object while dragging it to a new location in any direction, including along the z-axis.
-
iOS and iPadOS support drag and drop through gestures on the touchscreen, interactions with a pointing device, and through full keyboard-access mode.
-
Universal Control lets people drag content between their Mac and iPad.
-
On a Mac, people can interact with a pointing device, use full keyboard access mode, or use VoiceOver to perform drag and drop.
Best practices
As much as possible, support drag and drop throughout your app.
Offer alternative ways to accomplish drag-and-drop actions.
Determine when dragging and dropping content within your app results in a move or a copy.
Support multi-item drag and drop when it makes sense.
Prefer letting people undo a drag-and-drop operation.
Consider offering multiple versions of dragged content, ordered from highest to lowest fidelity.
Consider supporting spring loading.
Providing feedback
Display a drag image as soon as people drag a selection about three points.
If it adds clarity, modify the drag image to help people predict the result of a drag-and-drop operation.
Show people whether a destination can accept dragged content.
When people drop an item on an invalid destination, or when dropping fails, provide visual feedback.
Accepting drops
Scroll the contents of a destination when necessary.
When there’s a choice, pick the richest version of dropped content your app can accept.
Extract only the relevant portion of dropped content if necessary.
When a physical keyboard is attached, check for the Option key at drop time.
Provide feedback when dropped content needs time to transfer.
Provide feedback when dropped content initiates a task or action.
Apply appropriate styling to dropped text.
After a drop, maintain the content’s selection state in the destination, updating it in the source as needed.
Platform considerations
iOS, iPadOS
Let people perform multiple simultaneous drag activities.
macOS
Consider letting people drag content from your app into the Finder.
Let people drag selected content from an inactive window without first making the window active.
When possible, let people drag individual items from an inactive window without affecting an existing background selection.
Consider displaying a badge during multi-item drag operations.
Consider changing the pointer appearance to indicate what will happen when people drop content.
As much as possible, let people select and drag content with a single motion.
visionOS
When possible, launch your app to handle content that people drop into empty space.
Resources
Related
Developer documentation
Videos
Change log
For the complete guidance, including worked examples and illustrations, see the canonical page: https://developer.apple.com/design/human-interface-guidelines/drag-and-drop