Проблема с Dropbox iPad логин модальный вид контроллера - PullRequest
2 голосов
/ 12 июля 2011

У меня проблема с контроллером модального вида для входа в Dropbox iPad: иногда вы не можете написать в текстовом поле пароля; Вы можете выбрать его, и появится клавиатура, но вы не можете писать. Обходной путь состоит в том, чтобы нажать кнопку входа в систему, он говорит, что вы не ввели пароль, вы нажимаете ок, выберите его снова и теперь работает. Это не очень приятно для пользователей. Итак, теперь вопрос: кто-то нашел способ исправить Dropbox SDK или это проблема, которая у меня единственная?

1 Ответ

1 голос
/ 21 июля 2011

Я использую 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, это может повлиять на работу некоторых текстовых полей.

...