Проверьте, содержит ли строка букв и отменить их
-
08-10-2019 - |
Вопрос
У меня есть UIrextfield, и мне нужно разрешить только номера, запятую или точку, набрав в этом поле.
Как я могу проверить, содержит ли эта строка любой символ, а не из них выше, и как я могу заменить / удалить их?
Мое поле будет хранить стоимость, и мне нужно только номера, запятую или точку ...
Может кто-нибудь помочь мне?
Спасибо!
Решение
Вы можете использовать -textFieldDidEndEditing:
метод от UITextFieldDelegate
протокол. Этот метод называется всякий раз, когда текстовое поле уходит в отставку первого статуса респондента (т.е. заканчивается редактирование). Это шанс проверить введенную строку. Если вы хотите выполнить проверку после каждого ввода символа, используйте -textField:shouldChangeCharactersInRange:replacementString:
Как говорит Донецкий.
Другие советы
Для текстового поля вы можете использовать UITextFieldDelegate
и внедрить textField:shouldChangeCharactersInRange:replacementString:
метод. Согласно документам, «Text Text вызывает этот метод всякий раз, когда пользователь набирает новый символ в текстовом поле или удаляет существующий символ». В способе вы должны проверить все не числовые символы и удалить их.
Вместо этого, чтобы проверить строку, почему вы не можете назначить значение клавиатуры TextField в качестве numberpad. Так что пользователь не сможет ввести строку.
Вы можете сделать это, мониторинг ввода пользователя в поле и автоматически удаляя не совпадающие символы. Создать метод Ibaction:
- (IBAction)validateEntry:(id)sender;
затем прикрепите его к текстовому полю Редактирование изменено мероприятие. Способ будет вызываться каждый раз, когда текст в поле меняется, будь то из текста ввода пользователя или из текста пользователей.
Внутри способа вы можете изучить текст и удалить оскорбительные символы или, более вежливо, обновлять UILabel, который сообщает пользователю, что они ввели недопустимые символы и отключите любые кнопки «Отправить», пока не исправлено.