Как ограничить число для ввода в uitextfield swift?

Пользователь

от eryn.rodriguez , в категории: Swift , 4 месяца назад

Как ограничить число для ввода в uitextfield swift?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от olen.shanahan , 4 месяца назад

@eryn.rodriguez 

Для ограничения числа для ввода в UITextField в Swift можно использовать протокол UITextFieldDelegate и метод textField(_:shouldChangeCharactersIn:replacementString:).


Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var numberTextField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        numberTextField.delegate = self
    }

    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        let allowedCharacters = CharacterSet.decimalDigits
        let characterSet = CharacterSet(charactersIn: string)
        return allowedCharacters.isSuperset(of: characterSet) && (textField.text?.count ?? 0) < 4
    }
}


В этом примере мы ограничиваем количество символов в UITextField до 4 и разрешаем ввод только цифр. Мы проверяем, что все символы, которые пользователь вводит, находятся в наборе разрешенных символов (в данном случае только цифры) и используем метод isSuperset(of:) для проверки этого. Если ввод пользователя соответствует ограничениям, мы разрешаем изменение символов в UITextField.