#macos #cocoa #nstableview
#macos #какао #nstableview
Вопрос:
Пытаюсь использовать reloadDataForRowIndexes:columnIndexes:
для моего представления, основанного NSTableView
на 10.7. Возникли проблемы с перерисовкой. Если я отредактирую объект и вызову reloadDataForRowIndexes:columnIndexes: и позже удалю объект, я получу статическое представление строк.
Для табличных представлений на основе представлений reloadDataForRowIndexes:columnIndexes: удалит ячейки представления в строке таблицы, но не экземпляры NSTableRowView.
Не уверен, как я должен указать табличному представлению также удалить представление строк. Если я использую reloadData, все работает, но, очевидно, это намного более сложный метод для вызова и приводит к потере выбора.
Есть мысли?
ОБНОВЛЕНИЕ: добавлено демонстрационное приложение для демонстрации ошибки. Можно найти на GitHub. У него есть обходной код, но, тем не менее, я все равно хотел бы найти ответ.
Ответ №1:
Я думаю, что я исправил эту ошибку. Оказывается, вы должны быть осторожны при закрытии с [self.tableView endUpdates]
помощью, прежде чем пытаться выполнить какой-либо вид reloadDataForRowIndexes:columnIndexes:
в tableview.
Я добавлю свой радар, запрашивающий официальную консоль, которая будет регистрироваться при попытке сделать такую вещь.
Проект GitHub был обновлен.