iOS中的可访问自定义键盘

iOS中的可访问自定义键盘,ios,uitextfield,accessibility,voiceover,uiaccessibility,Ios,Uitextfield,Accessibility,Voiceover,Uiaccessibility,我想让定制键盘在可访问性方面表现得像iOS软件键盘。当按下按钮将字母添加到UITextField时,该字母应以“添加字符音调”的画外音发音。当按下按钮从UITextField中删除字母时,该字母应以“已删除字符音调”的画外音发音 以下是我的尝试: 在情节提要的视图控制器中创建了UITextField 在情节提要的视图控制器中创建了两个标记为“类型”和“退格”的UIButton 将两个UIButton的可访问性特征设置为键盘键 将情节提要UITextField连接到IBOutlet UITextF

我想让定制键盘在可访问性方面表现得像iOS软件键盘。当按下按钮将字母添加到UITextField时,该字母应以“添加字符音调”的画外音发音。当按下按钮从UITextField中删除字母时,该字母应以“已删除字符音调”的画外音发音

以下是我的尝试:

  • 在情节提要的视图控制器中创建了UITextField
  • 在情节提要的视图控制器中创建了两个标记为“类型”和“退格”的UIButton
  • 将两个UIButton的可访问性特征设置为键盘键
  • 将情节提要UITextField连接到IBOutlet UITextField实例textField
  • 将情节提要“Type”ui按钮连接到iAction,-Type
  • 将情节提要的“Backspace”按钮连接到iAction,-Backspace
  • 已实现-键入为:
    [[self textField]insertText:@“a”]
  • 已实现-退格为:
    [[self textField]deleteBackward]
  • 让textField成为第一响应者
  • 我也尝试了同样的方法,将按钮移动到设置为textField的inputView的UIView中

    这些字符被正确地添加到文本字段中或从文本字段中删除,但画外音不会说出这些字符。我怎样才能做到这一点

    编辑:

    硬件键盘正确地说话。只有自定义软件键盘不能正常工作。

    可能需要启用Voice-Over才能使整个设备正常工作。您可以在可访问性中更改此设置。如果设备上已经启用了VoiceOver,我不知道该怎么办

    我注意到,为了让“语音内容”»“语音屏幕”也能说出键盘键,我必须在按钮上添加
    .keyboardKey
    ,例如在Swift中:

    button.accessibilityTraits = [.keyboardKey]
    
    或在Objective-C中:

    [button setAccessibilityTraits:UIAccessibilityTraitKeyboardKey];
    

    而且,很明显,如果按钮是图像,您也需要为它们添加显式的
    accessibilityLabel

    当您执行所有这些操作时,按下这些键时,您的代理是否会回调到
    textField:shouldChangeCharactersRange:replacementString:
    。但是,在调用-insertText:之前询问学员文本是否应该更改似乎没有什么区别。