Пользовательский tableViewCell resignFirstResponder при прокрутке вне экрана - PullRequest
0 голосов
/ 29 июня 2011

У меня есть таблица, которая содержит несколько пользовательских tableViewCells, каждый из которых содержит textField.Я обнаружил, что если я ввожу текст в одно текстовое поле и (без нажатия кнопки «Готово» на клавиатуре) прокручивает текстовое поле за пределами экрана, чтобы ввести текст в другую ячейку, приложение вылетает при изменении вида.Это чаще всего происходит в ландшафтном режиме, поскольку текущую tableViewCell необходимо прокручивать за пределами экрана, чтобы сгенерировать ошибку при изменении вида.

Я считаю, что происходит, когда ячейка выходит за пределы экрана, соединение между ячейкойклавиатура сломана и что при изменении вида удаление клавиатуры для невидимого (несуществующего) текстового поля вызывает сбой.

Я уверен, что это простое исправление, но я не нашелэто пока.

Заранее спасибо.

1 Ответ

0 голосов
/ 29 июня 2011

Вы можете попробовать что-то вроде этого:

CustomUITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Gioni"];

// If no cell is available, create a new one using the given identifier.
if (cell == nil) {
    cell = [[[CustomUITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Gioni"] autorelease];
}
else
{
     [cell resignFirstResponderForObjectInCell];
}

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

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