Это потому, что в режиме прокрутки предусмотрено копирование содержимого при прокрутке и только перерисовка недавно обнаруженной части в качестве оптимизации производительности. Для того, чтобы превратить это прочь, используйте
myTableView.enclosingScrollView.contentView.copiesOnScroll = NO;
хотя это сделает прокрутку использовать больше ресурсов процессора (вы также можете сделать это в XIB, обратите внимание на «копии на свитка» флажок).
Вероятно, лучше было бы, чтобы переключить вид прокрутки и кнопку, чтобы быть слой спинками:
myTableView.enclosingScrollView.wantsLayer = YES;
myButtonView.wantsLayer = YES;
(Опять же, вы можете установить в инспекторе «Слои» файла XIB, где вы можете щелкнуть флажок рядом с каждым представлением, чтобы дать ему слой). Теперь вид прокрутки будет копировать материал только с собственного слоя (который больше не включает вашу кнопку). Кроме того, теперь вся композиция текстового вида будет выполнена с использованием в графической карте. Это прекрасно работает с непрозрачной кнопкой, однако, если вы поместите текст на прозрачный фон на своем собственном слое (например, если у вас есть прозрачная кнопка с заголовком), вы потеряете субпиксельное сглаживание.
Возможный дубликат [Почему NSTextField оставляет артефакты над NSTableView при прокрутке таблицы?] (Http://stackoverflow.com/questions/22171410/why-does-an-nstextfield-leave-artifacts-over-an -nstableview-когда-заместитель таблицы scrol) –