Лучший способ сделать подпредставления ячеек вне экрана доступными для makeFirstResponder - PullRequest
1 голос
/ 21 февраля 2012

Я создал табличное представление, основанное на фиде, который содержит, по сути, количество элементов типа формы.Упрощенно думать об этом, как о двух типах элементов текстовых полей и сообщений.Ячейки типа Textbox должны содержать UITextFields, а ячейки типа Message должны содержать не редактируемую UITextArea.

Я создал пользовательскую ячейку для обработки каждого из типов и рендеринга их в таблицу.Все идет нормально.

Клиент запросил предыдущий / следующий / готовый inputAccessoryView, аналогичный тому, который Safari использует для HTML-форм.Немного поработав позже, я приступил к работе, я добавил некоторые функциональные возможности, которые заставляют prev / next пропускать ячейки с типом сообщения и вызывать makeFirstResponder, только когда он находит ячейку с типом текстового поля.Тем не менее, кажется, что все идет гладко.

Затем я добавил в тестировании действительно длинное сообщение, чтобы проверить мой код установки высоты строки.Когда я пытаюсь перейти к предыдущей или следующей ячейке сообщения, произойдет сбой с:

2012-02-21 11:34:36.642 MobileMarketing[52410:13a03] -[ContactFormTableViewController selectUpdate:]: unrecognized selector sent to instance 0x89802f0
2012-02-21 11:34:36.643 MobileMarketing[52410:13a03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ContactFormTableViewController selectUpdate:]: unrecognized selector sent to instance 0x89802f0'

Я предполагаю, что это потому, что целевое поле на дальней стороне сообщения и теперь за кадром удалено.Я читаю об этом.Но долгий путь для простого вопроса.У кого-нибудь есть хорошая техника для решения этой проблемы?

1 Ответ

1 голос
/ 21 февраля 2012

Если я правильно понимаю вашу проблему, вы можете решить ее, используя scrollToRowAtIndexPath:atScrollPosition:animated, как показано здесь: https://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITableView_Class/Reference/Reference.html.

Если вы перейдете к следующей ячейке, вы можете гарантировать, что она существует до того, каквы пытаетесь сделать FirstResponder.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...