<!--
{
  "availability" : [
    "macOS: 13.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/View/exportableToServices(_:onEdit:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI4ViewPAAE20exportableToServices_6onEditQrSayqd__GyXA_SbAFct16CoreTransferable0J0Rd__lF"
  },
  "title" : "exportableToServices(_:onEdit:)"
}
-->

# exportableToServices(_:onEdit:)

Exports read-write items for consumption by shortcuts,
quick actions, and services.

```
nonisolated func exportableToServices<T>(_ payload: @autoclosure @escaping () -> [T], onEdit: @escaping ([T]) -> Bool) -> some View where T : Transferable
```

## Parameters

`payload`

A closure that will be called on request of the items
by the shortcut or service.

`onEdit`

A closure that will be called after the shortcut or
service completes with its output data. This should replace the
selected subpart that was exported with `onExport`. Return `false` to
indicate that there was a failure to receive the items.

## Discussion

If the associated view supports selection, the exported item should
reflect that selected subpart.

```
@State private var title: String
var body: some View {
    Color.pink
        .frame(width: 400, height: 400)
        .exportableToServices([title]) { editedTitles
            title = editedTitles.first ?? title
            return !editedTitles.isEmpty
        }
}
```

---

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)