Принудительно перерисовать как изменение размера NSTableColumn в NSTableView? - PullRequest
1 голос
/ 30 декабря 2010

Я реализовал - (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row в делегате моего NSTableView, чтобы изменить размер строк моей таблицы при изменении ширины самого левого столбца.Проблема заключается в том, что только этот столбец перерисовывается во время изменения размера (и любой столбец, который отображается во время изменения размера).

Это приводит к наглядным изображениям ниже после изменения размера.То, что я хотел бы, - это способ заставить представление таблицы полностью перерисовываться, пока пользователь изменяет размер столбца.Сейчас самое большее, что я смог сделать, это вызвать setNeedsDisplay после того, как этот столбец закончит изменение размера.

alt text

Ответы [ 2 ]

2 голосов
/ 30 декабря 2010

Проверьте метод NSTableView noteHeightOfRowsWithIndexesChanged:.Вам нужно будет создать NSIndexSet для строк, высота которых изменилась.

update: Чтобы иметь безопасное место для вызова этого, вы можете создать подкласс NSTableColumn для переопределения setWidth: метод.Затем вы можете опубликовать пользовательское уведомление, которое может наблюдать ваш делегат таблицы, или вы также можете переопределить табличное представление и указать столбцу, чтобы таблица сообщала своему делегату напрямую.

1 голос
/ 22 января 2011

Возможно, это не единственный способ, но исправление этого в табличном представлении слой Core Animation. Это не на 100% гладко, но средний пользователь, вероятно, никогда не заметит.

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