---
title: "showBroadcastPicker(at:from:preferredExtensionIdentifier:completionHandler:)"
framework: replaykit
role: symbol
role_heading: Type Method
path: "replaykit/rpbroadcastactivitycontroller/showbroadcastpicker(at:from:preferredextensionidentifier:completionhandler:)"
---

# showBroadcastPicker(at:from:preferredExtensionIdentifier:completionHandler:)

Presents a list of available broadcast services for the user to select.

## Declaration

```swift
class func showBroadcastPicker(at point: CGPoint, from window: NSWindow?, preferredExtensionIdentifier preferredExtension: String?, completionHandler handler: @escaping @Sendable (RPBroadcastActivityController?, (any Error)?) -> Void)
```

```swift
class func showBroadcastPicker(at point: CGPoint, from window: NSWindow?, preferredExtensionIdentifier preferredExtension: String?) async throws -> RPBroadcastActivityController
```

## Parameters

- `point`: The origin point within the specified window.
- `window`: The window presenting the picker. Specify doc://com.apple.documentation/documentation/ObjectiveC/nil-227m0 to present the picker from the main app window.
- `preferredExtension`: The extension bundle identifier for the preferred broadcast extension service. Specify doc://com.apple.documentation/documentation/ObjectiveC/nil-227m0 to show all extensions.
- `handler`: The system calls this closure after the user selects a broadcast extension. The system passes the closure the selected broadcast activity controller, or an error if a failure occurred.

## Discussion

Discussion important: You can call this method from synchronous code using a completion handler, as shown on this page, or you can call it as an asynchronous method that has the following declaration: class func showBroadcastPicker(at point: CGPoint, from window: NSWindow?, preferredExtensionIdentifier preferredExtension: String?) async throws -> RPBroadcastActivityController For information about concurrency and asynchronous code in Swift, see Calling Objective-C APIs Asynchronously.
