У меня есть 1 текстовое поле в полоску, которое принимает номер карты, срок годности и cvv.У меня также есть распознаватель жестов касания на экране, чтобы закрыть клавиатуру.
Если номер карты пуст или неправильно заполнен (например, 4 цифры вместо 16), и я нажимаю поля даты истечения срока действия или поля cvv изатем я нажимаю за пределами текстового поля, чтобы закрыть клавиатуру, вместо этого, если она сразу же отклоняет ее, она переходит в поле номера карты, а затем мне приходится снова нажимать за пределами текстового поля, чтобы закрыть клавиатуру.По сути, мне нужно дважды нажать за пределами клавиатуры, чтобы закрыть ее, что выглядит как ошибка.
Однако, если номер карты заполнен правильно, а затем я выполняю тот же процесс, мне нужно только нажать за пределами текстового поля.один раз, чтобы отклонить клавиатуру.
Похоже, что на STPPaymentCardTextField
есть значение по умолчанию, которое говорит: «если номер карты недействителен, и пользователь пытается отклонить клавиатуру из полей срока годности или cvv, тогда donне отклонять клавиатуру, сначала перейти к номеру карты и только отклонить его оттуда "
Как я могу немедленно удалить клавиатуру из полей даты истечения срока годности или cvv, даже если номер карты заполнен неправильно?
import Stripe
let paymentTextField: STPPaymentCardTextField = {
let stp = STPPaymentCardTextField()
stp.translatesAutoresizingMaskIntoConstraints = false
return stp
}()
override func viewDidLoad() {
super.viewDidLoad()
paymentTextField.delegate = self
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
view.addGestureRecognizer(tapGesture)
}
@objc fileprivate func dismissKeyboard() {
view.endEditing(true)
}