How do I support drag and drop on macOS using Swift?

Drag and drop functionality on macOS allows users to interact with applications by dragging items and dropping them into different areas of the interface. In Swift, you can implement this feature using the AppKit framework. Below is an example demonstrating how to support drag and drop in a macOS app.

import Cocoa class MyView: NSView { override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation { return .copy // Accepts the drop } override func performDragOperation(_ sender: NSDraggingInfo) -> Bool { guard let pasteboard = sender.draggingPasteboard.pasteboardItems else { return false } for item in pasteboard { if let data = item.data(forType: NSPasteboard.PasteboardType.string) { print("Dropped data: \(data)") } } return true } override func draggingUpdated(_ sender: NSDraggingInfo) -> NSDragOperation { return .copy } override func draggingExited(_ sender: NSDraggingInfo?) { // Handle drag exit logic here } override func draggingSourceOperationMask(for sender: NSDraggingInfo) -> NSDragOperation { return .copy } }

keywords: drag and drop macOS Swift AppKit user interface