UITextField не меняет семантику в RTL iOS - PullRequest
0 голосов
/ 13 октября 2019

У меня есть приложение с двумя языками - английским и арабским (пользователь изменит язык из приложения)

Когда я выбираю арабский язык из схем редактирования для тестирования интерфейса справа налево, все работает нормально, но когда я запускаю RTL, когдаязык изменения пользователя:

let semantic: UISemanticContentAttribute = (lang == "ar") ? .forceRightToLeft : .forceRightToLeft
UIView.appearance().semanticContentAttribute = semantic

Все представления изменяются на RTL, кроме UITextField, даже если я использую ограничения на начало и конец

1 Ответ

0 голосов
/ 14 октября 2019

Относительно Apple Document

iOS применяет изменения внешнего вида, когда представление входит в окно, оно не меняет внешний вид представления, которое уже находится в окне. Чтобы изменить внешний вид представления, находящегося в данный момент в окне, удалите представление из иерархии представлений и затем верните его обратно.

Возможно, причина в том, что текстовые файлы уже находятся в текущем окне. Итак, давайте попробуем заменить ваше окно при смене языка или попробуем обновить semanticContentAttribute после выделения UITextField.

 self.textField.semanticContentAttribute = (lang == "ar")? .forceRightToLeft : .forceLeftToRight
...