NSTableView проблема удаления последней строки - PullRequest
1 голос
/ 27 августа 2009

Прошло много времени с тех пор, как я испортил свой TableViewController, поэтому я немного заржавел ... но теперь я бы хотел настроить его так, чтобы, когда в разделе отображалось ноль строк (массив пуст), тогда он будет "лежать" на контроллере и вернет 1 для numberOfRowsInSection. Затем в cellForRowAtIndexPath он поместит UILabel над ячейкой в ​​одну строку, что говорит что-то вроде «этот раздел пуст».

Проблема в том, что когда таблица находится в режиме редактирования и пользователь удаляет последнюю строку, я получаю следующую ошибку:

Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Недопустимое обновление: недопустимое количество строк в разделе 1. Число строк, содержащихся в существующем разделе после обновления (1), должно быть равно количество строк, содержащихся в этом разделе до обновления (1), плюс или минус количество строк, вставленных или удаленных из этого раздела (0 вставлено, 1 удалено).

Кажется, это расстроено, что после удаления строки, когда он пытается перерисовать таблицу, он обнаруживает, что последняя строка все еще там. Где / как я должен справиться с этим? Конечно, я в какой-то степени хихикаю по всему HIG от Apple, но моим пользователям непонятно иметь заголовок над пустым разделом ...

спасибо!

1 Ответ

0 голосов
/ 27 августа 2009

Вам нужно вставить свою «поддельную» строку, используя -insertRowsAtIndexPaths:withRowAnimation:. С точки зрения UITableView, нет «настоящих» или «поддельных» строк. Есть источники данных, которые есть в источнике данных. Итак, у вас была 1 строка, а затем вы удалили 1 строку, а затем UITableView спросил вас «сколько там строк», а вы сказали 1, а UITableView сказал «1 - 1 = 1. Подождите, что?

Если вы хотите вставить строку («реальная» или «фальшивая» - это одно и то же), вам нужно сообщить UITableView, что вы ее вставляете.

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