Клавиатура iPhone не отображается после добавления uitextfield.inputView

У меня есть страница регистрации с кучей текстовых полей. Для некоторых из них я заменил текстовые поля inputView на UIPickerView, чтобы дать им выбор вариантов на выбор. После реализации этого я столкнулся со странной проблемой. После того, как клавиатура или окно выбора свернуты (прикосновение к фоновому представлению завершает редактирование), клавиатура (или окно выбора) больше не отображается. Кажется, просто больше не всплывает. Возможно, это связано... курсор, который мигает в текстовом поле, больше не появляется.

Причина, по которой я знаю, что текстовое поле является «активным» или распознает его редактирование, заключается в том, что контроллер представления перемещает свой self.view, чтобы каждое текстовое поле находилось посередине (в случае, если его абсолютная позиция находится в нижней половине экрана) . Таким образом, весь контроллер просмотра перемещается, но он просто черный под self.view, когда он движется вверх. Я могу предоставить больше кода, где это необходимо, но я чувствую, что этот вопрос может быть более концептуальным.

// Add picker
    picker = UIPickerView();
    picker.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: Globals.keyboardHeight())
    picker.dataSource = self;
    picker.delegate = self;
    ethnicityTextfield.inputView = picker;
    genderTextfield.inputView = picker;
    eyeColorTextfield.inputView = picker;
    hairColorTextfield.inputView = picker;
    heightTextfield.inputView = picker;

person MingMan    schedule 16.12.2014    source источник
comment
для другого текстового поля, где средство выбора не требуется, добавьте textFiled.inputView = nil;   -  person Sam    schedule 16.12.2014


Ответы (1)


Итак, я нашел проблему, и на самом деле это не имело ничего общего с inputViews. Я назвал переменную в том же контроллере представления «firstResponder», и это, по-видимому, ограниченный термин. Подсветка синтаксиса и обнаружение ошибок не помечают его, поэтому поиск занял некоторое время. Я надеюсь, что это поможет кому-то еще

person MingMan    schedule 16.12.2014