В ответ на ваш вопрос
Вид чертежа вне его границ, как правило, запрещен. При использовании чередующихся цветов фона NSTableView рисует свой фон напрямую. Но в табличном представлении, основанном на представлении, используется NSTableRowView, и если у него есть собственный цвет фона, это создает еще большую проблему.
Плохие новости
Сборка NSScrollView (и его различных частей), NSTableView и NSTableHeaderView сложна сама по себе. Когда вы добавляете функциональность, основанную на представлениях, в смесь (где каждая строка имеет представление, а каждая ячейка имеет свое собственное представление, и каждая из них используется повторно, анимируется и т. Д.), Переопределение этого поведения «не может идти по жизни, сынок !» ; -)
Благая весть
Проблема чередующихся цветов фона, не распространяющихся в упруго-растянутом виде прокручиваемой таблицы , была решена (по крайней мере, 10.10, что я могу сказать), так что это больше не проблема, если у вас нет представления строк / ячеек с пользовательскими фонами или просто фоновыми цветами.
Общее решение для пользовательских представлений (с прокруткой)
Для всех других видов прокрутки с фонами с линейкой, которые вы хотите расширить для упругой прокрутки, вам понадобится пользовательский подкласс NSScrollView, который ожидает, что представление документа (ваше пользовательское представление прокрутки) будет соответствовать определенному вами протоколу (например, -(NSImage *)backgroundImageForClipViewBounds:
) ). Представление прокрутки будет наблюдать его представление содержимого (NSClipView) для границ уведомлений об изменениях и помечать себя для отображения. Когда вызывается представление -drawRect:
для прокрутки, оно запрашивает прокручиваемое представление для -backgroundImageForClipViewBounds:
(через ваш протокол) и рисует его в себе, тем самым делая «бесконечный фон» прокручиваемого представления своим собственным.
Я не проверял эту теорию, но я верю, что она будет работать. Надеюсь, это поможет.