Swift UITextField: программная блокировка для приема только чисел

Чтобы заблокировать клавиатуру UITextField для программного приема чисел только в Swift, вы можете использовать следующие методы:

  1. Использование UIKeyboardType:
    Установите тип клавиатуры UITextField на.numberPad. Это ограничивает ввод только цифрами и скрывает нечисловые символы клавиатуры.
textField.keyboardType = .numberPad
  1. Использование настраиваемого представления аксессуаров ввода:
    Создайте настраиваемое представление аксессуаров ввода, содержащее только числовые кнопки, и назначьте его свойству inputAccessoryView UITextField. Этот подход обеспечивает пользовательскую клавиатуру только с цифровыми опциями.
class NumericInputAccessoryView: UIView {
    // Implement your custom numeric keypad here
    // ...
}
let accessoryView = NumericInputAccessoryView()
textField.inputAccessoryView = accessoryView
  1. Использование UITextFieldDelegate:
    Реализуйте метод UITextFieldDelegate textField(_:shouldChangeCharactersIn:replacementString:) для проверки и ограничения ввода только числами. Верните false, если строка замены содержит нечисловые символы.
class ViewController: UIViewController, UITextFieldDelegate {
    // ...

    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)
    }
// ...
}