(основанный на представлении) reloadDataForRowIndexes в NSTableView: columnIndexes: не удаляется представление строки? - PullRequest
3 голосов
/ 01 октября 2011

Попытка использовать reloadDataForRowIndexes:columnIndexes: для моего представления на основе NSTableView в 10.7. Проблемы с перерисовкой, хотя. Если я редактирую объект и вызываю reloadDataForRowIndexes: columnIndexes: и позже удаляю объект, я получаю статическое представление строки.

К Документы предупреждают :

Для табличных представлений на основе представления reloadDataForRowIndexes: columnIndexes: удалит ячейки представления в строке таблицы, но не NSTableRowView экземпляры.

Не уверен, как я должен сказать табличному представлению отбросить представление строки также. Если я использую reloadData, то все работает, но очевидно, что вызов метода намного тяжелее и вызывает потерю выделения.

Есть мысли?

ОБНОВЛЕНИЕ: Добавлено демонстрационное приложение для демонстрации ошибки. Можно найти на GitHub. У него есть обходной код, но я все равно хотел бы найти ответ.

https://github.com/zorn/NSTableView-ViewBased-ReloadRowBug

1 Ответ

2 голосов
/ 04 октября 2011

Я думаю, что исправил эту ошибку.Оказывается, вы должны быть осторожны, закрывшись с [self.tableView endUpdates], прежде чем пытаться использовать reloadDataForRowIndexes:columnIndexes: для таблицы.

Я добавлю свой радар с просьбой записать работу формальной консоли при попытке сделать это.

Проект GitHub обновлен.

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