iOS13:如何检测"Voice Control"是运行
iOS 13: How to detect "Voice Control" is running
在iOS13中有没有类似于UIAccessibility.isVoiceOverRunning
的API来检测语音控制是否为运行?我无法在当前 beta docs.
中找到任何相关内容
语音控制:https://www.apple.com/ios/ios-13-preview/features/(参见辅助功能部分)。
没有任何关于这个惊人的新功能的亮点,但不幸的是它 'accessibilityUserInputLabels' property: neither event name nor notification。
等待iOS13的正式发布,可能会在最终文档中提供一些消息:像我一样点燃蜡烛。 ;o)
当您需要在用户使用语音控制时显示不同的 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
}
}
在iOS13中有没有类似于UIAccessibility.isVoiceOverRunning
的API来检测语音控制是否为运行?我无法在当前 beta docs.
语音控制:https://www.apple.com/ios/ios-13-preview/features/(参见辅助功能部分)。
没有任何关于这个惊人的新功能的亮点,但不幸的是它 'accessibilityUserInputLabels' property: neither event name nor notification。
等待iOS13的正式发布,可能会在最终文档中提供一些消息:像我一样点燃蜡烛。 ;o)
当您需要在用户使用语音控制时显示不同的 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
}
}