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

# NSDraggingDestination

A set of methods that the destination object (or recipient) of a dragged image must implement.

```
protocol NSDraggingDestination : NSObjectProtocol
```

## Overview

The destination automatically receives [`NSDraggingDestination`](/documentation/AppKit/NSDraggingDestination) messages for pasteboard data types it has registered for as an image enters, moves around inside, and then exits or is released within the destination’s boundaries.

In macOS 10.7 and later [`NSDraggingDestination`](/documentation/AppKit/NSDraggingDestination) is a formal protocol with an updated interface. The OS X v10.6 behavior has been retained, but will be dropped in a future version of the operating system. The methods that are to be deprecated are marked as such.

## Topics

### Managing a Dragging Session Before an Image Is Released

[`-  draggingEntered:`](/documentation/AppKit/NSDraggingDestination/draggingEntered(_:))

Invoked when the dragged image enters destination bounds or frame; delegate returns dragging operation to perform.

[`-  wantsPeriodicDraggingUpdates`](/documentation/AppKit/NSDraggingDestination/wantsPeriodicDraggingUpdates())

Asks the destination object whether it wants to receive periodic [`draggingUpdated(_:)`](/documentation/AppKit/NSDraggingDestination/draggingUpdated(_:)) messages.

[`-  draggingUpdated:`](/documentation/AppKit/NSDraggingDestination/draggingUpdated(_:))

Invoked periodically as the image is held within the destination area, allowing modification of the dragging operation or mouse-pointer position.

[`-  draggingExited:`](/documentation/AppKit/NSDraggingDestination/draggingExited(_:))

Invoked when the dragged image exits the destination’s bounds rectangle (in the case of a view object) or its frame rectangle (in the case of a window object).

[`-  draggingEnded:`](/documentation/AppKit/NSDraggingDestination/draggingEnded(_:))

Called when a drag operation ends.

### Managing a Dragging Session After an Image Is Released

[`-  prepareForDragOperation:`](/documentation/AppKit/NSDraggingDestination/prepareForDragOperation(_:))

Invoked when the image is released, allowing the receiver to agree to or refuse drag operation.

[`-  performDragOperation:`](/documentation/AppKit/NSDraggingDestination/performDragOperation(_:))

Invoked after the released image has been removed from the screen, signaling the receiver to import the pasteboard data.

[`-  concludeDragOperation:`](/documentation/AppKit/NSDraggingDestination/concludeDragOperation(_:))

Invoked when the dragging operation is complete, signaling the receiver to perform any necessary clean-up.

### Updating Dragging Images

[`-  updateDraggingItemsForDrag:`](/documentation/AppKit/NSDraggingDestination/updateDraggingItemsForDrag(_:))

Invoked when the dragging images should be changed.

## Relationships

### Conforming Types

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

### 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)