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

# NSFilePromiseReceiver

An object that receives a file promise from the pasteboard.

```
class NSFilePromiseReceiver
```

## Overview

Because [`NSFilePromiseReceiver`](/documentation/AppKit/NSFilePromiseReceiver) implements the [`NSPasteboardReading`](/documentation/AppKit/NSPasteboardReading) protocol, you receive all file promises on the drag pasteboard as follows:

```swift
let filePromises = draggingPasteboard.readObjects(forClasses: [NSFilePromiseReceiver.self], options: nil)
```

Likewise, you can enumerate dragged items by calling the following:

```swift
draggingInfo.enumerateDraggingItems(options: [], for: view, classes: [NSFilePromiseReceiver.self], searchOptions: [:], using: {(draggingItem, idx, stop) in
    let filePromiseReceiver = draggingItem.item
    // Use filePromiseReceiver here for your task.
}
```

> Note:
> A non-item-based drag source may promise multiple files on the same pasteboard item. To be compatible with these drag sources, many ``doc://com.apple.appkit/documentation/AppKit/NSFilePromiseReceiver`` methods return an array of values. Multiple-file item-based promises result in one ``doc://com.apple.appkit/documentation/AppKit/NSFilePromiseReceiver`` per promised file.

## Topics

### Instance Properties

[`fileNames`](/documentation/AppKit/NSFilePromiseReceiver/fileNames)

An array containing names of the promised files being written to the destination location.

[`fileTypes`](/documentation/AppKit/NSFilePromiseReceiver/fileTypes)

An array containing types of the promised files being written to the destination location.

### Instance Methods

[`-  receivePromisedFilesAtDestination:options:operationQueue:reader:`](/documentation/AppKit/NSFilePromiseReceiver/receivePromisedFiles(atDestination:options:operationQueue:reader:))

Fulfills the promises at the specified destination.

### Type Properties

[`readableDraggedTypes`](/documentation/AppKit/NSFilePromiseReceiver/readableDraggedTypes)

An array containing dragged file types that are readable.

## Relationships

### Conforms To

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

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

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

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

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

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

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)