我尝试暂停语音并获得例外:
UIAccessibilityPostNotification(UIAccessibilityPauseAssistiveTechnologyNotification, UIAccessibilityNotificationVoiceOverIdentifier)
' NSInvalidArgumentException',原因:'您必须传递标识符 暂停的辅助技术。请参阅UIAccessibilityConstants.h 有效值列表。'
出了什么问题?谢谢!
答案 0 :(得分:4)
我也遇到了这个问题,尽管自ios9以来标识符已被标记为可用,但它仍然在ios10上继续崩溃。在查看文档后,我认为暂停/恢复辅助技术'毕竟不是为了配音。
"应该发布暂时暂停辅助技术的操作。 例如,您可能希望在应用播放动画时暂停在Switch Control中进行扫描。 应使用表示辅助技术的标识符作为参数。 目前,这些通知仅适用于Switch Control 。 通知必须平衡。也就是说,每个UIAccessibilityPauseAssistiveTechnologyNotification 应该跟一个匹配的UIAccessibilityResumeAssistiveTechnologyNotification使用相同的参数。 如果用户执行需要辅助技术恢复操作的操作, 它可能会在收到相应的UIAccessibilityResumeAssistiveTechnologyNotification之前这样做。 参数是NSString。"
答案 1 :(得分:1)
您必须使用UIAccessibility.AssistiveTechnologyIdentifier,例如:
UIAccessibility.post(notification: .pauseAssistiveTechnology,
argument: UIAccessibility.AssistiveTechnologyIdentifier.notificationVoiceOver)