Я использую Dropbox SDK с приложением для iPad.Я просмотрел их код DBLoginController.h/.m
.Управление паролем - это простой UITextField
, который добавляется к UITableViewCell
.Есть только несколько мест, где текст, вводимый в поле, может быть изменен на лету.Одним из них является -(BOOL)textField:shouldChangeCharactersInRange:replacementString
.Глядя на код в DBLoginController, я вижу это:
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
[self performSelector:@selector(updateActionButton) withObject:nil afterDelay:0];
return YES;
}
Это нормально, поскольку всегда возвращает YES.
Следующая возможность состоит в том, что textField фактически не получает фокус.Лучший способ проверить это - поместить NSLog () в shouldChangeCharactersInRange
.Этот NSLog () должен срабатывать каждый раз, когда вы вводите символ в поле пароля.Если вы печатаете и не видите вывода NSLog (), это означает, что поле пароля не имеет фокуса.Следующим шагом было бы выяснить, на что имеет фокус и почему.
DBLoginController - довольно простой класс.Не должно быть трудно отследить, что происходит.
Еще одна заключительная мысль: если у вас есть какие-либо категории, определенные в UITextField
, это может повлиять на работу некоторых текстовых полей.