带自定义键盘的 VoiceOver

VoiceOver with Custom Keyboard

我有一个自定义键盘应用程序,目前正在处理语音支持更新,但删除(后退space)按钮有问题。

我的键盘现在在 "Touch Typing" 模式下与 Voice Over 的苹果默认键盘完全一样。当用户点击 w、a、s,然后点击 space 时,VoiceOver 将在点击 space 按钮后说出 "was"。 Myb 唯一的问题是删除键,当用户点击它时,VoiceOver 会说 "Bottom of documnet" 而不是删除的字符。我尝试了很多不同的方法让 VoiceOver 说出被删除的词,但没有成功。

我的删除键' accessibilityTraits 设置为

button.accessibilityTraits =  UIAccessibilityTraitKeyboardKey  

就像键盘上的其他键一样,但这没有帮助。

我需要的是让 VoiceOver 在按下删除键时说出正在删除的内容,就像 Apple 键盘通过 VoiceOver 所做的那样。

非常感谢 哈桑

我找到了这个问题的解决方案。 首先,我使用了 UIAccessibilityAnnouncementNotification ,当按下删除按钮时将调用它,并将删除的字符作为参数传递给它。 我们通过使用 textDocumentProxy.documentContextBeforeInput 找到删除的字符,这将 return 一个字符串,您需要做的就是获取最后一个字符。

完成!!!!!一个烦人的问题的简单解决方案。