Курсор мигает в UITextField, но клавиатура не отображается

Я получил простое подробное представление с текстовым полем. В подробностях viewController я написал такой код:

- (void) viewDidAppear:(BOOL)animated{
    [self.textField becomeFirstResponder];
    NSLog(@"is textField 1st responder %d", [self.textField isFirstResponder]);
}

Когда я вставляю детали в контроллер навигации, я вижу в моем журнале «is textField 1st респондент 0». Клавиатура не появляется. Но в текстовом поле мигающий курсор.

Что происходит в этот момент? Почему не появляется клавиатура? Я попытался поймать уведомление «KeyboardDidShown» в моем AppDelegate, но ничего не уловил: введите описание изображения здесь

Вот мой главный дизайн вида:

введите описание изображения здесь


person kas-kad    schedule 19.12.2012    source источник
comment
Вы уверены, что self.textField не nil и уже находится в поле вашего зрения, когда вы звоните becomeFirstResponder?   -  person Andreas Ley    schedule 20.12.2012
comment
Я только что попытался перенести этот код в метод viewDidLoad - ничего не изменилось.   -  person kas-kad    schedule 20.12.2012
comment
Это не ответ на мой вопрос. :) Где инициализировать свой UITextField и куда добавить в свой UIView?   -  person Andreas Ley    schedule 20.12.2012
comment
Где вы устанавливаете UITextFieldDelegate?   -  person DenVog    schedule 20.12.2012
comment
Андреас, я инициализирую textField в IB.   -  person kas-kad    schedule 20.12.2012
comment
DenVog, я не использую делегирование textField. Клавиатура должна появиться без делегирования. Я ошибся?   -  person kas-kad    schedule 20.12.2012
comment
Вы выбрали следующий ответ как «Правильный ответ», но он настолько расплывчатый. У меня такая же проблема, но я не могу понять, как ее решить. Коды в rghost удаляются. Это сообщество предназначено для помощи всем людям, а не только себе. Пожалуйста, сделайте ответ более ясным.   -  person AliBZ    schedule 21.03.2013
comment
@AliBZ Я отредактировал ответ, но он может быть невидимым банкоматом. Итак, готово - два проекта: решено dl.dropbox.com/u/34188625/hh2_Solved .zip и исходный с ошибками dl.dropbox.com/u/ 34188625 / hh2.zip. Вы можете проверить, что клавиатура не отображается в подробном представлении (вы ранее создавали строку в главном представлении)   -  person kas-kad    schedule 22.03.2013


Ответы (1)


Позвонить reloadInputViews помогает?

person Akshay Shah    schedule 20.12.2012
comment
Если текущий объект не является первым респондентом, этот метод не действует. проблема в том, что я не могу найти, где мой первый респондент. Я проверил все просмотры этим методом - (void) viewDidAppear:(BOOL)animated{ NSLog(@"is view 1st responder %d", [self isFirstResponder]); } - person kas-kad; 20.12.2012
comment
Я пытался отправить reloadInputViews в свое текстовое поле в viewDidAppear, но ничего не происходит - person kas-kad; 20.12.2012
comment
Вы можете прислать проект? Может быть, это образец, показывающий проблему. - person Akshay Shah; 20.12.2012
comment
Теперь это решено ... :) Причина проблемы заключалась в том, что у вас было два разных объекта UIWindow. Один - в вашем приложении делегат Два - в вашем контроллере представления xib. Здесь вместо uiwindow должен был быть UIView. и в его viewDidLoad добавить TabBarview. Вы можете скачать решенный проект по адресу: rghost.net/42397367 - person Akshay Shah; 21.12.2012