Десятичный разделитель в UITextField->KeyboardType->Decimal Pad

xcode

#1

Добрый день.

В программе используется поле UITextField для ввода числа с десятичной дробью (пример: 77.3). В дальнейшем он сохраняется в CoreData и отображается на экране у пользователя.

Проблема вводе этого значения, а частности в UITextField значение KeyboardType установлено значение “Decimal Pad”, для ввода только чисел с десятичной дробью. Однако в “Decimal Pad” используется “запятая” как разделитель десятичной дроби, а в xcode используется “точка”, соответственно при вводе значения “77,3” он не сохраняется в CoreData и при вызове значения возвращает “0”.

Вопрос: Как дать возможность вводить пользователю значение с десятичной дробью через точку “пример: 77.3”, или есть ли возможность xcode заставить работать с десятичной дробью через “запятую”?


#2

В разных странах используется разный разделитель дробной части. Соответственно, клавиатура будет отличаться в зависимость от выбранной локализации.
Правильной решение, использовать numberFormatter
https://developer.apple.com/documentation/foundation/numberformatter

import Foundation

let recivedNumber = "10,1"

let numberFormatter = NumberFormatter()
numberFormatter.decimalSeparator = ","
numberFormatter.number(from: recivedNumber)

#3

Благодарю, использовал.