macos-dnd

Implements Transferable-based drag-and-drop for SwiftUI lists and cross-app file drops on macOS 13+.

Updated Apr 9, 2026
One-click install
npx skills add https://github.com/productengineered/parsely --skill macos-dnd-productengineered
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: macos-dnd
Source: https://github.com/productengineered/parsely/tree/main/.claude/skills/tooling/macos-dnd
Command: npx skills add https://github.com/productengineered/parsely --skill macos-dnd-productengineered

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

macOS drag-and-drop patterns are verbose and error-prone; this guide shows how to implement Transferable-based drag sources and drop targets for list reordering and cross-app/file drops.

Core Features & Use Cases

  • Transferable-based drag-and-drop pattern for macOS 13+
  • Support for onMove reordering in List views
  • Cross-app and file drop scenarios using onDrop and dropDestination

Quick Start

Implement Transferable conformance in your SwiftUI views to enable macOS drag-and-drop.

Frequently Asked Questions about macos-dnd

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement drag-and-drop in SwiftUI for macOS list reordering?

Implement drag-and-drop in SwiftUI by conforming your data model to the Transferable protocol and using the onMove modifier to enable smooth list reordering on macOS 13 and later.

How does the Transferable protocol work for macOS drag-and-drop operations?

The Transferable protocol works by defining the data representations your model exposes, allowing SwiftUI drag sources and drop destinations to share items seamlessly across list views and other macOS applications.

Can I accept file drops from Finder into a SwiftUI macOS app?

Yes, you can accept file drops from Finder by applying the dropDestination or onDrop modifiers to your SwiftUI views, specifying the Transferable representations your app expects to receive.

What is the best way to support cross-app drag-and-drop in a SwiftUI macOS application?

The best way to support cross-app drag-and-drop is conforming your data to Transferable with appropriate representations, then using onDrop and dropDestination modifiers to handle incoming items from external macOS applications.

Do I need macOS 13 or later to use Transferable for drag-and-drop?

Yes, you need macOS 13 or later to use the Transferable protocol and its associated drag-and-drop modifiers like dropDestination, as these APIs are built for modern SwiftUI compatibility.

Why does my SwiftUI onDrop modifier fail to accept external file drops?

onDrop fails to accept external file drops when your Transferable conformance lacks the correct representation types, or when your dropDestination modifier is not properly configured for the incoming data format.