<!--
{
  "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

[`static var copy: NSDragOperation`](/documentation/AppKit/NSDragOperation/copy)

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

[`static var link: NSDragOperation`](/documentation/AppKit/NSDragOperation/link)

A constant that indicates the drag can share the data.

[`static var generic: NSDragOperation`](/documentation/AppKit/NSDragOperation/generic)

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

[`static var `private`: NSDragOperation`](/documentation/AppKit/NSDragOperation/private)

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

[`static var move: NSDragOperation`](/documentation/AppKit/NSDragOperation/move)

A constant that indicates the drag can move the data.

[`static var delete: NSDragOperation`](/documentation/AppKit/NSDragOperation/delete)

A constant that indicates the drag can delete the data.

[`static var every: NSDragOperation`](/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: UInt)`](/documentation/AppKit/NSDragOperation/init(rawValue:))

Creates a new instance with the specified raw value.

### Deprecated

[`static var all: NSDragOperation`](/documentation/AppKit/NSDragOperation/all)

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

[`static var all_Obsolete: NSDragOperation`](/documentation/AppKit/NSDragOperation/all_Obsolete)

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

## Relationships

### Conforms To

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

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

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

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

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

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

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

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

---

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)