<!--
{
  "availability" : [
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSDraggingInfo",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(pl)NSDraggingInfo"
  },
  "title" : "NSDraggingInfo"
}
-->

# NSDraggingInfo

A set of methods that supply information about a dragging session.

```
protocol NSDraggingInfo : NSObjectProtocol
```

## Overview

You invoke the [`NSDraggingInfo`](/documentation/AppKit/NSDraggingInfo) protocol methods from within a class’s implementation of [`NSDraggingDestination`](/documentation/AppKit/NSDraggingDestination) methods. AppKit automatically passes an object that conforms to the [`NSDraggingInfo`](/documentation/AppKit/NSDraggingInfo) protocol as the argument to each of the methods that [`NSDraggingDestination`](/documentation/AppKit/NSDraggingDestination) defines. Send [`NSDraggingInfo`](/documentation/AppKit/NSDraggingInfo) messages to this object. You never need to create a class that implements the [`NSDraggingInfo`](/documentation/AppKit/NSDraggingInfo) protocol.

## Topics

### Obtaining information about the dragging session

[`draggingPasteboard`](/documentation/AppKit/NSDraggingInfo/draggingPasteboard)

The pasteboard object that holds the dragged data.

[`draggingSequenceNumber`](/documentation/AppKit/NSDraggingInfo/draggingSequenceNumber)

A number that uniquely identifies the dragging session.

[`draggingSource`](/documentation/AppKit/NSDraggingInfo/draggingSource)

The source, or owner, of the dragged data.

[`draggingSourceOperationMask`](/documentation/AppKit/NSDraggingInfo/draggingSourceOperationMask)

Information about the dragging operation and the data it contains.

[`draggingLocation`](/documentation/AppKit/NSDraggingInfo/draggingLocation)

The current location of the mouse pointer in the base coordinate system of the destination object’s window.

[`draggingDestinationWindow`](/documentation/AppKit/NSDraggingInfo/draggingDestinationWindow)

The destination window for the dragging operation.

[`numberOfValidItemsForDrop`](/documentation/AppKit/NSDraggingInfo/numberOfValidItemsForDrop)

The number of valid items for a drop operation.

[`-  namesOfPromisedFilesDroppedAtDestination:`](/documentation/AppKit/NSDraggingInfo/namesOfPromisedFilesDropped(atDestination:))

Sets the drop location for promised files and returns the names of the files that the receiver promises to create there.

### Getting image information

[`draggedImageLocation`](/documentation/AppKit/NSDraggingInfo/draggedImageLocation)

The current location of the dragged image’s origin, in the base coordinate system of the destination object’s window.

[`draggedImage`](/documentation/AppKit/NSDraggingInfo/draggedImage)

The image that represents the dragging item.

### Sliding the image

[`-  slideDraggedImageTo:`](/documentation/AppKit/NSDraggingInfo/slideDraggedImage(to:))

Slides the image to a specified location.

[`animatesToDestination`](/documentation/AppKit/NSDraggingInfo/animatesToDestination)

A Boolean value that indicates whether the dragging formation animates while the drag is over the destination.

[`draggingFormation`](/documentation/AppKit/NSDraggingInfo/draggingFormation)

The formation of the dragging items while the drag is over the destination.

### Enumerate dragged items

[`-  enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:`](/documentation/AppKit/NSDraggingInfo/enumerateDraggingItems(options:for:classes:searchOptions:using:))

Enumerates through each dragging item.

### Implementing spring-loading support

[`springLoadingHighlight`](/documentation/AppKit/NSDraggingInfo/springLoadingHighlight)

A highlighting style for your app’s user interface to display during a spring-loading operation.

[`-  resetSpringLoading`](/documentation/AppKit/NSDraggingInfo/resetSpringLoading())

Resets a spring-loading operation to its initial state.

### Constants

[`NSDragOperation`](/documentation/AppKit/NSDragOperation)

A group of constants that represent which operations the dragging source can perform on dragging items.

[`NSDraggingItemEnumerationOptions`](/documentation/AppKit/NSDraggingItemEnumerationOptions)

A group of constants that specify options to use when enumerating dragging items.

[`NSSpringLoadingHighlight`](/documentation/AppKit/NSSpringLoadingHighlight)

A group of constants that indicate a highlighting style for your app’s user interface to display during a spring-loading operation.

[`NSDraggingFormation`](/documentation/AppKit/NSDraggingFormation)

Constants that control the visual format of multiple dragging items.

[`NSDraggingContext`](/documentation/AppKit/NSDraggingContext)

Constants that specify whether a drag terminates within or outside the application.

## Relationships

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

---

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)