<!--
{
  "availability" : [
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSDragOperation",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:@E@NSDragOperation"
  },
  "title" : "NSDragOperation"
}
-->

# NSDragOperation

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

```
struct NSDragOperation
```

## Topics

### Constants

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

A constant that indicates the drag can copy the data that the image represents.

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

A constant that indicates the drag can share the data.

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

A constant that indicates the destination can define the drag operation.

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

A constant that indicates the source and destination negotiate the drag operation privately.

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

A constant that indicates the drag can move the data.

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

A constant that indicates the drag can delete the data.

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

A constant that indicates that drag can perform all of the drag operations.

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

A constant that indicates that the drag cannot perform any operations.

### Initializers

[`init(rawValue:)`](/documentation/AppKit/NSDragOperation/init(rawValue:))

Creates a new instance with the specified raw value.

### Deprecated

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

Use [`every`](/documentation/AppKit/NSDragOperation/every) instead.

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

The `NSDragOperationAll` constant is deprecated. Use [`every`](/documentation/AppKit/NSDragOperation/every) instead.

## Relationships

### Conforms To

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`RawRepresentable`](/documentation/Swift/RawRepresentable)

[`Equatable`](/documentation/Swift/Equatable)

[`ExpressibleByArrayLiteral`](/documentation/Swift/ExpressibleByArrayLiteral)

[`Sendable`](/documentation/Swift/Sendable)

[`SetAlgebra`](/documentation/Swift/SetAlgebra)

[`OptionSet`](/documentation/Swift/OptionSet)

[`BitwiseCopyable`](/documentation/Swift/BitwiseCopyable)

---

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)