iOS特殊字符的辅助功能

use*_*546 4 accessibility ios

我是新的辅助功能.我的应用程序中的问题是,例如,应用程序没有正确说出某些特殊字符(. - )

-0.7拼写为7

Dav*_*ist 6

您可以使用数字格式化程序和"拼出"样式为这些字符串创建更合适的accessibilityLabel.然后,VoiceOver将读取该标签的该字符串,但它在某处的UI中不可见.

NSNumber *number = @(-0.7);
NSNumberFormatter *formatter = [NSNumberFormatter new];
formatter.numberStyle = NSNumberFormatterSpellOutStyle;
formatter.locale = [NSLocale currentLocale];

NSString *spelledOutNumber = [formatter stringFromNumber:number];

// set that as the accessibility label to be read instead of the number
yourLabel.accessibilityLabel = spelledOutNumber; 
Run Code Online (Sandbox Code Playgroud)

这也会为您提供一个适用于不同语言环境的解决方案(下面的一些示例输出):

en_US -> minus zero point seven
de_DE -> minus null Komma sieben
fr_FR -> moins zéro virgule sept
ja_JP -> ???????
es_ES -> menos cero coma siete
ru_RU -> ????? ???? ??????? ????
sv_SE -> minus noll komma sju
Run Code Online (Sandbox Code Playgroud)

  • 验证voiceOver的标点符号设置 - 将其设置为至少"一些标点符号".当它被设置为"无标点符号"时,读出将省略标点符号并将其读作"某些示例公司com".这可以通过转子设置 (2认同)