У меня есть UITextField
, и я хочу, чтобы он имел максимальную длину текста 20. Таким образом, я позволяю себе (текущий контроллер вида) соглашаться с <UITextFieldDelegate>
и устанавливать само собой в качестве делегата текстового поля, а также использовать следующий метод, чтобы установить максимальную длину:textField: shouldChangeCharactersInRange: replacementString: не вызывается при вводе в UITextField
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == self.nickNameTextField)
{
if (textField.text.length > 20)
return NO;
}
return YES;
}
Однако, когда я вставляю контрольную точку в этой функции я обнаружил, что эта функция не была вызвана, когда я напечатал в любых словах, много меньше, если длина текста превышает 20. Может ли кто-нибудь сказать мне, почему?
Проверьте, правильно ли настроен делегат для 'UITextField'. Также я предлагаю вам использовать тег вместо имени. –
@ManjulShrestha yeah Я установил делегат текстового поля в 'viewDidLoad' – Caesar
Как вы создаете экземпляр своего текстового поля? –