Клавиатура iPhone не появляется при вводе UITextField

Это должно быть какая-то ошибка новичка, которую я просто могу видеть, и я благодарен за подсказки относительно того, что проверить или где искать.

Я следил за учебником iPhone, который имеет UITextField, убедившись, что я подключил IBOutlet для текстового поля, и, похоже, он правильно компилируется (никаких ошибок или предупреждений). Но когда я запускаю его под симулятором и нажимаю в поле, я не нахожу клавиатуру, поэтому я могу что-то ввести в поле.

I & rsquo; ve попытался найти сайт для подобных вопросов, и все, что я нашел, - это несколько вопросов, когда разработчик пытается создать сложный интерфейс с несколькими контроллерами, и один из них, похоже, был той же проблемой, но оригинальный плакат просто сказал, что он решил это, начав новый проект и портируя код. Мне нравится находить фактическое решение, поэтому я не хочу попробовать случайную перестройку проектов, когда эта проблема снова появится.

Спасибо!

Ответ 1

Просто, чтобы покрыть все ваши базы при устранении неполадок, убедитесь, что это не симулятор iOS, который вызывает это. Я не видел, чтобы клавиатура появлялась при входе в UITextView, и оказалось, что симулятор позволяет вам переключаться между отображением виртуальной клавиатуры и просто использовать клавиатуру вашего ноутбука.

Вы переключаете между ними через:

Hardware > Keyboard > Toggle Software Keyboard

или нажмите Cmd + K.

(мой источник: fooobar.com/questions/112830/...)

Итак, убедитесь, что вы не ошиблись, чтобы переключить симулятор, чтобы использовать только свою физическую клавиатуру!... как будто я

Ответ 2

Убедитесь, что в родительских контейнерах установлен флажок User Interaction Enabled. Недостаточно, чтобы отдельные элементы управления проверяли это. UIView может непреднамеренно удалить этот выбор.

Одна вещь, которую вы должны проверить, - убедиться, что содержательный вид ( UIView, содержащий все элементы управления), который является значком "Вид" в приложении "Интерфейс", имеет User Interaction Enabled. Если родительский контейнер не проверяет этот флажок, даже если отдельные элементы управления выполняются, вы увидите это поведение.

Ответ 3

Что такое делегат для подключенного UITextField? Убедились ли вы, что функция делегата, особенно - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField , вернет правильную вещь (в этом случае ДА)?

Ответ 4

Не уверен, что это что-то еще, но я использовал TextField в контроллере TabBar, который был изменен, и я добавил жест встряски в моем основном контроллере. К сожалению, это означало, что я устанавливал [self startFirstponder] в viewDidLoad. В этом случае, когда мой модальный вид отображался, он не стал первым ответчиком и, следовательно, клавиатура не отображалась.

Чтобы исправить это, я добавил [self resignFirstResponder] непосредственно перед вызовом модального дисплея, и все хорошо! Yay (прошло всего пять дней, чтобы понять это).

Ответ 5

В основном единственное, что вам нужно сделать, это объявить текстовое поле в .h

IBOutlet UITextField *textField

затем объявить с тем же именем в свойстве

@property (nonatomic, retain) UITextField *textField;

то убедитесь, что вы синтезируете в .m

@synthesize textField;

то вам нужно связать это поле в построителе интерфейса