macOS SDK Custom UI – Callback for participant pin changes

Description
I’m using Custom UI mode in the Zoom macOS Meeting SDK. I manually create and manage ZoomSDKVideoElement and ZoomSDKActiveVideoElement to render participant videos in my SwiftUI app.

I want to implement a pin feature (like Spotlight, but local) in my Custom UI:

  • When a participant is pinned, their video should appear in a larger “main” view.

  • When unpinned, the video returns to normal grid or secondary view.

I’m looking for a delegate or callback that tells me when a participant is pinned or unpinned, so I can update my UI accordingly.

To Reproduce:

  1. Join a meeting with multiple participants.
  2. Render participant videos using ZoomSDKVideoElement and ZoomSDKActiveVideoElement in Custom UI.
  3. Tried built-in pin APIs such as pinVideoToFirstView() and getPinnedUserListFromFirstView() — these do not apply in Custom UI mode.
  4. Tried onActiveVideoUserChanged — only fires for active speaker changes, not pin/unpin.Screenshots
    If applicable, add screenshots to help explain your problem.

Screenshots

N/A — behavior is delegate/API related.

Expected behavior:

  • A delegate or callback triggers when a participant is pinned/unpinned, so I can update the UI.

Actual behavior:

  • No callback exists in Custom UI mode.

  • I must manually track which participant is pinned.

Troubleshooting Routes

  1. Tested using Custom UI mode.

Device (please complete the following information):

  • Device: Apple MacBook Pro (16-inch, M1 Pro)
  • OS: macOS Sonoma 14.5

Additional context
Goal: Detect in real time when a participant is pinned in Custom UI, so I can render their video in the main view.

  1. It seems the macOS SDK does not provide a pin change callback in Custom UI mode.
  2. Looking for any recommended way or workaround to achieve this behavior.

hi @Sebastian3 ,

Welcome to the forum. I would have suspected this in the App SDK, because I have used Spotlight. But you can add and remove pins. I can not see other documentation.
I am not seeing an onparticpantpin… webhook call that will return this for you.
And now that you raise it, I can see times when this is useful.

However, I can not find it either.

John