iOS中的可访问自定义键盘
我想让定制键盘在可访问性方面表现得像iOS软件键盘。当按下按钮将字母添加到UITextField时,该字母应以“添加字符音调”的画外音发音。当按下按钮从UITextField中删除字母时,该字母应以“已删除字符音调”的画外音发音 以下是我的尝试:iOS中的可访问自定义键盘,ios,uitextfield,accessibility,voiceover,uiaccessibility,Ios,Uitextfield,Accessibility,Voiceover,Uiaccessibility,我想让定制键盘在可访问性方面表现得像iOS软件键盘。当按下按钮将字母添加到UITextField时,该字母应以“添加字符音调”的画外音发音。当按下按钮从UITextField中删除字母时,该字母应以“已删除字符音调”的画外音发音 以下是我的尝试: 在情节提要的视图控制器中创建了UITextField 在情节提要的视图控制器中创建了两个标记为“类型”和“退格”的UIButton 将两个UIButton的可访问性特征设置为键盘键 将情节提要UITextField连接到IBOutlet UITextF
[[self textField]insertText:@“a”]代码>
[[self textField]deleteBackward]代码>
硬件键盘正确地说话。只有自定义软件键盘不能正常工作。可能需要启用Voice-Over才能使整个设备正常工作。您可以在可访问性中更改此设置。如果设备上已经启用了VoiceOver,我不知道该怎么办 我注意到,为了让“语音内容”»“语音屏幕”也能说出键盘键,我必须在按钮上添加
.keyboardKey
,例如在Swift中:
button.accessibilityTraits = [.keyboardKey]
或在Objective-C中:
[button setAccessibilityTraits:UIAccessibilityTraitKeyboardKey];
而且,很明显,如果按钮是图像,您也需要为它们添加显式的
accessibilityLabel
当您执行所有这些操作时,按下这些键时,您的代理是否会回调到textField:shouldChangeCharactersRange:replacementString:
。但是,在调用-insertText:之前询问学员文本是否应该更改似乎没有什么区别。