2013-02-25 2 views
0

Схема для одного из моих контроллеров View такова: у меня есть прокрутка, встроенная в мой VC. Внутри моего представления прокрутки у меня есть табличный вид, состоящий из 5 ячеек. Первые 3 ячейки состоят из текстового поля, которое вытягивает текст из словаря, и это изменяется в зависимости от определенных ситуаций. Эти текстовые поля редактируются, и поэтому нажатие на них вызывает клавиатуру, однако проблема заключается в том, что я хотел бы, чтобы мой просмотр прокручивался, когда я нажимаю на текстовое поле, потому что теперь клавиатура скрывает третье редактируемое текстовое поле. Другая проблема заключается в том, что на данный момент щелчок за пределами табличного представления не вызывает отклонения клавиатуры, поэтому единственный способ отклонить клавиатуру - нажать клавишу возврата. Мне бы хотелось, чтобы при нажатии на одно из трех редактируемых полей прокрутка должна прокручивать определенное число, которое я определяю (это так, что я могу определить, сколько прокрутки в зависимости от того, какая строка выбранный в настоящий момент). Одна из проблем, с которыми я сталкиваюсь, заключается в том, что я не могу напрямую ссылаться на эти текстовые поля в своем VC, поскольку все они созданы через одну ячейку прототипа. Мое мышление состояло в том, что я мог бы создать словарь с 3 текстовыми полями в качестве ключей, а затем координаты scrollview y как значения, а затем использовать их. Однако я не был уверен, как это сделать в моей ситуации (с ячейками прототипа). Было бы очень полезно, если бы кто-нибудь мог показать мне пример кода, как это сделать.Работа с клавиатурой и tableviewcell

+0

Возможный дубликат [Логика для перемещения текстового поля над клавиатурой при нажатии] (http://stackoverflow.com/questions/9135248/logic-for-moving-text-field-above-keyboard-on-tap) –

+0

Это решение для меня действительно не работает. Это не помогает мне справиться с моими ячейками прототипов и прокруткой. –

ответ

0

Вы можете ссылаться на свои текстовые поля, позвонив cellForRowAtIndexPath:, чтобы получить UITableViewCell, а затем позвонить viewWithTag:, чтобы получить UITextField. Просто присвойте текстовым полям номер тега. Кроме того, установите делегат текстового поля в качестве своего контроллера представления, чтобы вы могли отвечать на нажатие на пользователя для редактирования текста.

Смежные вопросы