Исходя из этого вопроса , в моем подклассе есть следующий код:…
В принятом ответе на этот вопрос предполагается, что ячейка находится втекстовое поле (т. е. это единственная ячейка в представлении, и оно фактически является целым представлением), и что это представление имеет или может быть зашито слоем.
Это не будет работать, когда выячейка столбца таблицы, потому что вы не должны перерисовывать весь вид и делать его на уровне слоя вероятно не будет работать правильно.(Я не уверен, что можно ожидать правильной работы текстового поля с поддержкой слоев. Что-либо кроме простого NSView либо работает на основе слоев, либо нет; если документация не говорит, что это так, предположим,это не так.)
[gradient drawInRect:cellFrame angle:90];
Но это просто рисует ячейку как обычный прямоугольник с градиентной заливкой, но без закругленных углов.
Да,Это все, что делает этот метод, поэтому без указания закругленных углов (например, в качестве радиуса угла слоя) вам нужно самостоятельно построить и нарисовать фигуру с закругленными углами.
Для этого создайте путь для прямоугольника с закругленными углами , а нарисуйте градиент в этом .