是否有类似于UIAccessibility.isVoiceOverRunning
的API来检测Voice Control是否在iOS 13中运行?在当前的beta docs中,我找不到任何内容。
语音控制:https://www.apple.com/ios/ios-13-preview/features/(请参阅辅助功能部分)。
答案 0 :(得分:1)
此令人惊叹的新功能未突出任何内容,但其 'accessibilityUserInputLabels' 属性:不幸的是,event name和notification都没有。
等待iOS 13的正式发布,这可能会在最终文档中提供一些消息:像我一样点燃蜡烛。 ; o)
答案 1 :(得分:0)
这是一种变通方法,当用户在语音控制中时需要显示不同的UI。
由于没有用于语音控制的API,例如UIAccessibility.isVoiceOverRunning
,因此您需要覆盖accessibilityActivate
才能知道用户何时使用辅助功能与您的应用进行交互。
class Button: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
addTarget(self, action: #selector(handleTouchUpInside), for: .touchUpInside)
}
override func accessibilityActivate() -> Bool {
// Launch more accessible UI
if UIAccessibility.isVoiceOverRunning {
// VoiceOver
} else if UIAccessibility.isSwitchControlRunning {
// Switch Control
} else {
// Probably used Voice Control or Full Keyboard Access
}
return true
}
@objc func handleTouchUpInside() {
// Standard interaction - continue to show default UI
}
}