Флаттер TextField с цифровой клавиатурой, вместо точки нужна запятая (только iOS) - PullRequest
0 голосов
/ 08 апреля 2019

Я хочу создать TextField во флаттере.TextField для десятичных чисел.Итак, я установил keyboardType: TextInputType.numberWithOptions(decimal: true).Теперь я получаю цифровую клавиатуру на iOS, но эта цифровая клавиатура имеет точку (.) Вместо запятой (,).Язык устройства iOS - Немецкий .

Мой текущий TextField:

TextField(
  key: Key("pricePerLiter"),
  style: TextStyle(color: inputTextColor),
  textAlign: TextAlign.end,
  focusNode: pricePerLiterFocusNode,
  keyboardType:
      TextInputType.numberWithOptions(decimal: true),
  decoration: inputDecoration.copyWith(
      suffixText: "€", errorText: pricePerLiterError),
  controller: pricePerLiterTextController,
  onEditingComplete: () {},
  onChanged: (value) {},
)

Моя локализация настроена следующим образом в моем приложении "Материал":

MaterialApp(
  localizationsDelegates: [
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ],
  supportedLocales: [
    const Locale('de', 'DE'),
  ],
  home: MyHomePage(),
)

Что мне нужно изменить, чтобы получить цифровую клавиатуру с запятой (,) вместо точки (.)?

1 Ответ

1 голос
/ 14 апреля 2019

В iOS вы должны активировать локаль de (или любой другой языковой стандарт, кроме en_US) в настройках сборки ios даже для приложений-флаттеров. Откройте ios / Runner.xcworkspace вашего флаттера с помощью Xcode. Выберите Бегун проекта. На странице «Информация» вы увидите включенные локали для вашего приложения в разделе «Локализация». Добавить де-локаль (или любой другой) здесь. Перестройте приложение (по Xcode или Flutter, не имеет значения).

Ищите здесь другой подход:

https://flutter.dev/docs/development/accessibility-and-localization/internationalization#appendix-updating-the-ios-app-bundle

...