init(supportedContentTypes:validator:payloadAction:)
Creates a Paste button that accepts specific types of data from the pasteboard, performing a custom validation of the data before sending it to your app.
Declaration
@MainActor @preconcurrency init<Payload>(supportedContentTypes: [UTType], validator: @escaping ([NSItemProvider]) -> Payload?, payloadAction: @escaping (Payload) -> Void)Parameters
- supportedContentTypes:
The exact uniform type identifiers supported by the button. If the pasteboard doesn’t contain any of the supported types, the button becomes disabled.
- validator:
A handler that receives those contents of the pasteboard that conform to
supportedContentTypes. Load and inspect these items to determine whether to validate the button. If you load a valid item, return it from this closure. If the pasteboard doesn’t contain any valid items, returnnilto invalidate the button. - payloadAction:
The handler called when the user clicks the button. This closure receives the preprocessed result of
validator.
Discussion
Set the contents of supportedContentTypes in order of your app’s preference for its supported types. The Paste button takes the most-preferred type that the pasteboard source supports and delivers this to the validator closure.