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

# NSFilePromiseProvider

An object that provides a promise for the pasteboard.

```
class NSFilePromiseProvider
```

## Overview

A file promise is a possible future file of a specified type.  When you’re working with drag and drop, use promises to indicate intent for future action.  Avoid loading or performing any actions on the file until the promise completes.

Use the [`NSFilePromiseProvider`](/documentation/AppKit/NSFilePromiseProvider) class when creating file promises. Instantiate one [`NSFilePromiseProvider`](/documentation/AppKit/NSFilePromiseProvider) for each file promised. Set the [`fileType`](/documentation/AppKit/NSFilePromiseProvider/fileType) and [`delegate`](/documentation/AppKit/NSFilePromiseProvider/delegate) properties before writing any [`NSFilePromiseProvider`](/documentation/AppKit/NSFilePromiseProvider) to the pasteboard. The file type must be a Uniform Type Identifier (UTI) that ultimately conforms to `kUTTypeData` or `kUTTypeDirectory`. The [`NSFilePromiseProviderDelegate`](/documentation/AppKit/NSFilePromiseProviderDelegate) will write the promised file to the destination directory.

Optionally, you may attach a `userInfo` object of your choosing to the [`NSFilePromiseProvider`](/documentation/AppKit/NSFilePromiseProvider) to determine which promise is being referenced when promising multiple files under the same [`NSFilePromiseProviderDelegate`](/documentation/AppKit/NSFilePromiseProviderDelegate) instance.

## Topics

### Initializers

[`init()`](/documentation/AppKit/NSFilePromiseProvider/init())

Initializes a file promise provider.

[`init(fileType:delegate:)`](/documentation/AppKit/NSFilePromiseProvider/init(fileType:delegate:))

Initializes a file promise provider for a certain file type.

### Instance Properties

[`delegate`](/documentation/AppKit/NSFilePromiseProvider/delegate)

[`fileType`](/documentation/AppKit/NSFilePromiseProvider/fileType)

The file type of the file promise provider.

[`userInfo`](/documentation/AppKit/NSFilePromiseProvider/userInfo)

Optional user information to pass to the file promise provider.



---

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)