Есть идеи?
Невозможно изменить локаль внутри UIDatePicker
для VoiceOver. 100
Язык, который будет учитываться, будет выбран в настройках устройства.
ОБЪЯСНЕНИЕ ?
Элемент UIDatePicker
представляет собой оболочку, содержащую множество других элементов, с которыми пользователь VoiceOver может взаимодействовать с (год, месяц и день в вашем случае) .
Таким образом, UIDatePicker
сам по себе не доступен, потому что представление и его подпредставления не могут быть доступны обоим полностью .
Правильно написать datePicker.accessibilityLanguage = "de-DE"
поскольку UIControl соответствует неофициальному протоколу UIAccessibility , но VoiceOver не будет его анализировать (родительское представление здесь недоступно) .
Представления, определяющие дату единственные из них доступны и интерпретируются VoiceOver как элементы adjustable
, но, к сожалению, их невозможно достичь при разработке.
UIDatePicker
- это своего рода черный ящик, который позволяет немногим операции, но не позволяет получить доступ к его подпредставлениям, например ... это может быть хорошим началом исследования здесь. 10
РЕШЕНИЕ ?
В вашем случае ничего нельзя настроить с помощью UIDatePicker
, но для достижения вашей цели с VoiceOver я рекомендую использовать UIPickerView
как на веб-сайте Apple :
Если вы хотите обработать выбор произвольных элементов из списка, используйте объект UIPickerView.
- Создайте объект
UIPickerView
с различными колесами. - Определите каждый из них с признаком
adjustable
, чтобы пользователь VoiceOver мог выбрать элемент в списке. - Возврат
NSAttributedString
чтобы добавить атрибут , который будет указывать язык или использовать accessibilityLanguage
, как вы это сделали, оба должны быть эффективными.
Это много работы в Сравнение с объектом UIDatePicker
под ключ, но я думаю, что вы сможете достичь своей цели, адаптировав язык для VoiceOver в вашем средстве выбора даты в соответствии с этим обоснованием. 10