SwiftUI TextField с числовым форматом игнорирует локаль средыIOS

Программируем под IOS
Ответить
Anonymous
 SwiftUI TextField с числовым форматом игнорирует локаль среды

Сообщение Anonymous »

Я столкнулся с проблемой: TextField SwiftUI с числовым форматом игнорирует языковой стандарт, установленный модификатором среды.

Код: Выделить всё

struct MyView: View {

@State
var number: Decimal = 1.1

var body: some View {
VStack {
HStack(spacing: 20) {
Text("Locale")
.frame(width: 100)
Text("Text")
.frame(width: 100)
Text("TextField")
.frame(width: 100)
}
HStack(spacing: 20) {
Text("de_DE")
.frame(width: 100)
Text(number, format: .number)
.frame(width: 100)
TextField("", value: $number, format: .number)
.frame(width: 100)
}
.environment(\.locale, Locale(identifier: "de_DE"))
HStack(spacing: 20) {
Text("en_US")
.frame(width: 100)
Text(number, format: .number)
.frame(width: 100)
TextField("", value: $number, format: .number)
.frame(width: 100)
}
.environment(\.locale, Locale(identifier: "en_US"))
}
.textFieldStyle(.roundedBorder)
}
}

#Preview {
MyView()
}
Вот что показывает предварительный просмотр:
Изображение

Первая строка с немецкой локалью "de_DE" верна, потому что в Германии в качестве разделителя используется запятая, а вторая строка с английским языковым стандартом США в текстовом поле должна отображаться точка.
Регион моего компьютера — Германия, и я предполагаю, что внутренние настройки TextField не учитывают языковой стандарт среды и вместо этого используют языковой стандарт системы.
Итак, как мне заставить TextField учитывать языковой стандарт среды? Есть ли простой способ не выполнять форматирование самостоятельно?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ent-locale
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»