Возможно, это простой вопрос, но я не могу понять, как правильно это сделать.Код проверки валидности между различными UITextFields
У меня есть UITextField
. Так как мне нужно, чтобы проверить текст, который вставляется в это текстовое поле, я в настоящее время с помощью метода UITextFieldDelegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
как следующее:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
// do validation here
// return YES or NO depending on previous validation
}
Поскольку у меня есть некоторые текстовые поля (они не принадлежат к тому же контроллеру где проверка выполняется), и я не хочу дублировать код проверки текстовых полей, как я могу достичь элегантного способа централизовать аналогичную проверку? Я не знаю, подходит ли подклассов, но в этом случае мне нужно использовать один и тот же метод делегирования (тот, который указан выше) в разных частях одного и того же приложения.
Заранее спасибо.
+1 для вашего совета. Но что вы имеете в виду * вы можете просто использовать один и тот же делегат для всех ваших текстовых полей *? * UITextFields * могут принадлежать к различным контроллерам представлений, которые их содержат. Спасибо. –
Я называю тебя, что ты имеешь в виду, и поднимешь еще то, что ты имеешь в виду. Нет причин, по которым два или более UITextFields не могут быть в разных диспетчерах представлений, но имеют один и тот же делегат. – yuji
Я вижу. Вы предлагаете создать другой объект класса, который «реализует» (принимает) * UITextFieldDelegate *, а затем создает его в каждом контроллере там, где это необходимо. Затем установите этот делегат как назначенный для текстовых полей. Это правильно? –