We're using IKPictureTaker to let users pick a room avatar image. The flow worked correctly on macOS 13–15, but breaks on macOS 26 (Tahoe).
Symptoms
popUpRecentsMenu(for:withDelegate:didEnd:contextInfo:) — no UI appears at all, and the didEnd selector is never called runModal() — a window appears but its content is completely blank (empty gray rectangle). The app freezes until the user force-quits Minimal reproduction
import Quartz
let pictureTaker = IKPictureTaker.pictureTaker()
pictureTaker?.setCommonValuesForKeys(allowsVideoCapture: true)
// Attempt 1 — silent fail, no UI, no callback
pictureTaker?.popUpRecentsMenu(for: someButton,
withDelegate: self,
didEnd: #selector(pictureTakerDidEnd),
contextInfo: nil)
// Attempt 2 — window appears but content is blank
let result = pictureTaker?.runModal()
// result is never returned while window is visible; app is frozen
Environment
macOS 26.0 (Tahoe) — reproducible by QA on multiple machines Xcode 16, Swift 5, deployment target macOS 10.14 Camera permission granted (AVAuthorizationStatus.authorized) App is sandboxed What I've ruled out
Camera permission is authorized before the call The view passed to popUpRecentsMenu has a valid, visible, key window Same code works on macOS 13, 14, 15
Question
Is this a known regression in macOS 26? Is IKPictureTaker expected to stop working, or is there a required entitlement / initialization step that changed? If the API is effectively unsupported, is NSOpenPanel with allowedContentTypes: [.image] the recommended migration path?