Делаете ли вы какой-нибудь нестандартный рисунок, который может мешать вещам? Насколько я могу судить, все выделенные чертежи обрабатываются для вас нормально, посмотрите пример TableViewPlayground (по умолчанию это не стиль списка источников, но это легко изменить в XIB).
Но если этого не сделать, то в соответствии с документацией Mac OS X 10.7 на highlightSelectionInClipRect:
Примечание. Этот метод не должен быть разделен на подклассы или переопределен для табличного представления вида.
Вместо этого настройку рисования строк следует выполнять путем создания подкласса NSTableRowView.
Поэтому я думаю (я не пробовал ничего из этого), как если бы вы хотели создать подкласс NSTableRowView, переопределить drawSelectionInRect:
(в TableViewPlayground есть пример и нарисовать ваш выбор. Вы можете проверить если приложение активно с [NSApp active]
или может использовать свойство self.emphasized
, как в примере.
Затем вы вернете один из ваших пользовательских NSTableRowView в методе протокола NSOutlineViewDelegate (только 10.7!): (NSTableRowView *)outlineView:(NSOutlineView *)outlineView rowViewForItem:(id)item
Надеюсь, это работает / помогает!
Следует отметить, что в примере TableViewPlayground по умолчанию используется метод делегата outlineView:viewForTableColumn:item:
, и он все делает с NSTableViewCells, но если вы добавите метод rowViewForItem
, о котором я упоминал выше, вызывается . Так что, думаю, вы могли бы использовать его, чтобы вернуть представление для каждой строки целиком.