NSTableView Закругленные углы, такие как UITableView Группы - PullRequest
0 голосов
/ 19 февраля 2012

Я пытаюсь создать NSTableView со скругленными углами (очень похоже на стиль таблицы в iOS Grouped). Однако это оказывается исключительно сложным.

Я пытался использовать CALayers:

// ...
self.wantsLayer = YES;
self.layer.masksToBounds = YES;
self.layer.cornerRadius = 10.0;
// ...

, который работает для NSView подклассов, но не NSTableView или NSScrollView.

Я также пытался переопределить drawRect: и использовать bezierPaths.

NSBezierPath *rectPath = [NSBezierPath bezierPathWithRect: self.bounds];
[rectPath appendBezierPathWithRoundedRect: self.bounds xRadius: 10 yRadius: 10];
[rectPath addClip];
[super drawRect: rectPath.bounds];

Я не тестировал этот метод на NSView с, но он не работает как есть для NSTableView с.

Я уже видел несколько «дублирующих» вопросов здесь, в StackOverflow, однако они не смогли обеспечить удовлетворительные решения.

Закругленные углы в NSTableView имеет 1 «правильный» ответ, который, казалось бы, помечен так просто, потому что спрашивающий изменил свою цель. Этот вопрос побудил меня попробовать NSBezierPath с, но, как я уже сказал, я не могу заставить этот метод работать.

NSTableView закругленные углы предлагает создать подкласс NSScrollView, однако он также не отвечает CALayers.

Любые предложения будут с благодарностью. Я хотел бы получить четкий ответ не только для себя, но и для потомков.

1 Ответ

2 голосов
/ 20 февраля 2012

Я тоже столкнулся с той же проблемой, что и при повороте, но ответа не получил.

Наконец, я сделал это по-другому, я сделал фон таблицы прозрачным и добавил изображение .png файлов круглого угла 4 пикселя (что я хочу показать) сразу за представлением таблицы .

Таким образом, я показал таблицу с круглым углом. Надеюсь, что это решение работает для вас.

...