Чтобы заблокировать клавиатуру UITextField для программного приема чисел только в Swift, вы можете использовать следующие методы:
- Использование UIKeyboardType:
Установите тип клавиатуры UITextField на.numberPad. Это ограничивает ввод только цифрами и скрывает нечисловые символы клавиатуры.
textField.keyboardType = .numberPad
- Использование настраиваемого представления аксессуаров ввода:
Создайте настраиваемое представление аксессуаров ввода, содержащее только числовые кнопки, и назначьте его свойству inputAccessoryView UITextField. Этот подход обеспечивает пользовательскую клавиатуру только с цифровыми опциями.
class NumericInputAccessoryView: UIView {
// Implement your custom numeric keypad here
// ...
}
let accessoryView = NumericInputAccessoryView()
textField.inputAccessoryView = accessoryView
- Использование 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)
}
// ...
}