Добавить AVRoutePickerView в UIMenu в Swift
Я пытаюсь сделать все, чтобы попытаться запустить AVRoutePickerView, чтобы показать, когда пользователь нажимает элемент в новом iOS 14 UIMenu.
Вот мой код:
let airplayAudio = UIAction(
title: NSLocalizedString("airplay_audio", comment: "Airplay Output"),
image: UIImage(systemName: "airplayaudio")
) { (_) in
let routerPickerView = AVRoutePickerView()
routerPickerView.prioritizesVideoDevices = false
self.view.addSubview(routerPickerView)
// TODO: Show the view somehow? Fake a Tap? Is there any way to do this?
// Perhaps subclass UIMenuElement?
}
let menuActions = [airplayAudio]
let newMenu = UIMenu(
title: "",
children: menuActions)
return newMenu
Я бы предпочел не имитировать нажатие на изображение. Я изучал это, и это не поощряется Apple, и это вроде взлома.
Мне кажется, что Apple придется создать подкласс UIMenuElement, который будет делать то же самое, что и AVRoutePickerView. Я не могу придумать другого пути решения проблемы.
Я не думаю, что мог бы создать его подкласс, поскольку мне пришлось бы заставить весь AVRoutePickerView растянуть весь размер UIMenuElement и быть скрытым, а затем каким-то образом передать нажатие из супервизора на AVRoutePickerView, что все звучит как кошмар.
Разве что - кто-нибудь еще может придумать простой способ сделать так, чтобы это отображалось при выборе UIAction?
Спасибо за любую помощь, ребята.