A single dragged item within a dragging session.


NSDraggingItem objects have extremely limited lifetimes. Do not retain these items as changing outside of the prescribed lifetimes have no impact on the drag.

When the NSDraggingSession method beginDraggingSession(with:event:source:) is called, the dragging items passed to the method are consumed immediately and are not retained. Any further changes to the dragging item associated with the returned NSDraggingSession must be done via the enumeration method enumerateDraggingItems(options:for:classes:searchOptions:using:). When enumerating, NSDraggingItem instances are created right before being given to the enumeration block. After returning from the block, the dragging item is no longer valid.


Initializing a Dragging Item

init(pasteboardWriter: NSPasteboardWriting)

Initializes and returns a dragging item using the specified content.

Dragging Frame

func setDraggingFrame(NSRect, contents: Any?)

Sets the item’s dragging frame and contents.

var draggingFrame: NSRect

Returns the frame of the dragging item.

Drag Image Components

var imageComponents: [NSDraggingImageComponent]?

Returns an array of dragging image components that are used to create the drag image.

var imageComponentsProvider: (() -> [NSDraggingImageComponent])?

An array of blocks that provide the dragging image components.

var item: Any

Returns the pasteboard reader or writer object dependent on the context of where this dragging item is used .


Inherits From

Conforms To

See Also

Drag Sources

protocol NSDraggingSource

A set of methods that are implemented by the source object in a dragging session.

class NSDraggingSession

The encapsulation of a drag-and-drop action that supports modification of the drag while in progress.

class NSDraggingImageComponent

A single object in a dragging item.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software