---
title: NSDraggingSession
framework: appkit
role: symbol
role_heading: Class
path: appkit/nsdraggingsession
---

# NSDraggingSession

An object that encapsulates a drag-and-drop action.

## Declaration

```swift
class NSDraggingSession
```

## Overview

Overview You start a new dragging session by calling beginDraggingSession(with:event:source:) or beginDraggingSession(items:gesture:source:) on an NSView. The method immediately returns, and the actual drag begins at the next turn of the run loop.

## Topics

### Dragging Pasteboard

- [draggingPasteboard](appkit/nsdraggingsession/draggingpasteboard.md)

### Dragging Visual Representation

- [animatesToStartingPositionsOnCancelOrFail](appkit/nsdraggingsession/animatestostartingpositionsoncancelorfail.md)
- [draggingFormation](appkit/nsdraggingsession/draggingformation.md)

### Identifying the Dragging Session

- [draggingSequenceNumber](appkit/nsdraggingsession/draggingsequencenumber.md)

### Enumerating Dragging Items

- [enumerateDraggingItems(options:for:classes:searchOptions:using:)](appkit/nsdraggingsession/enumeratedraggingitems(options:for:classes:searchoptions:using:).md)

### Dragging Session Location

- [draggingLocation](appkit/nsdraggingsession/dragginglocation.md)

### Dragging Item Location

- [draggingLeaderIndex](appkit/nsdraggingsession/draggingleaderindex.md)

### Instance Methods

- [updateDrag(from:)](appkit/nsdraggingsession/updatedrag(from:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Drag Sources

- [NSDraggingSource](appkit/nsdraggingsource.md)
- [NSDraggingItem](appkit/nsdraggingitem.md)
- [NSDraggingImageComponent](appkit/nsdraggingimagecomponent.md)
