我正在尝试一切尝试触发 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 时显示出来?
感谢大家的帮助。