Вопрос


У меня есть UIrextfield, и мне нужно разрешить только номера, запятую или точку, набрав в этом поле.
Как я могу проверить, содержит ли эта строка любой символ, а не из них выше, и как я могу заменить / удалить их?

Мое поле будет хранить стоимость, и мне нужно только номера, запятую или точку ...

Может кто-нибудь помочь мне?
Спасибо!

Это было полезно?

Решение

Вы можете использовать -textFieldDidEndEditing: метод от UITextFieldDelegate протокол. Этот метод называется всякий раз, когда текстовое поле уходит в отставку первого статуса респондента (т.е. заканчивается редактирование). Это шанс проверить введенную строку. Если вы хотите выполнить проверку после каждого ввода символа, используйте -textField:shouldChangeCharactersInRange:replacementString: Как говорит Донецкий.

Другие советы

Для текстового поля вы можете использовать UITextFieldDelegate и внедрить textField:shouldChangeCharactersInRange:replacementString: метод. Согласно документам, «Text Text вызывает этот метод всякий раз, когда пользователь набирает новый символ в текстовом поле или удаляет существующий символ». В способе вы должны проверить все не числовые символы и удалить их.

Вместо этого, чтобы проверить строку, почему вы не можете назначить значение клавиатуры TextField в качестве numberpad. Так что пользователь не сможет ввести строку.

Вы можете сделать это, мониторинг ввода пользователя в поле и автоматически удаляя не совпадающие символы. Создать метод Ibaction:

- (IBAction)validateEntry:(id)sender;

затем прикрепите его к текстовому полю Редактирование изменено мероприятие. Способ будет вызываться каждый раз, когда текст в поле меняется, будь то из текста ввода пользователя или из текста пользователей.

Внутри способа вы можете изучить текст и удалить оскорбительные символы или, более вежливо, обновлять UILabel, который сообщает пользователю, что они ввели недопустимые символы и отключите любые кнопки «Отправить», пока не исправлено.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top