Ребята , добрый день ! Прошу подсказать как при изменении TextFild - Editing Changed вводимое число например (15670.89) делилось на разряды (15 670.89)
Разрядность числа TextFild - Editing Changed
Dina
#3
я эту тему видела , и реализовала у себя, но проблема в том, что у меня на клавиатуре Decimal Pad не работает точка и поэтому я не могу ввести знаки после запятой , точка вообще не ставится, что мне изменить?
import UIKit
import Foundation
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var textField: UITextField!
var cenaStringDouble = ""
var cenaDouble = 0.00
// функция деление на разряды
func separatedNumber(_ number: Any) -> String {
guard let itIsANumber = number as? NSNumber else { return "" }
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.groupingSeparator = " "
formatter.decimalSeparator = "."
formatter.maximumFractionDigits = 2
return formatter.string(from: itIsANumber)!
}
@IBAction func cenaTextField_EditingChanged(_ sender: Any) {
cenaStringDouble = textField.text!.replacingOccurrences(of: " ", with: "")
if textField.text != "" && (Double(cenaStringDouble) != nil) {
cenaDouble = Double(cenaStringDouble)!
textField.text = separatedNumber(cenaDouble)
}
}
Tau
#4
Можно сделать свой TextField, который будет форматировать введенный текст как надо.
Только вот вопрос, зачем такие названия методам придумывать? Это ж не правильно.
voragomod
#5
Вот подходящий метод!!!
https://developer.apple.com/documentation/uikit/uitextfielddelegate/1619599-textfield
func textField( _ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
<#code#>
}