Я пытаюсь создать 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
.
Любые предложения будут с благодарностью. Я хотел бы получить четкий ответ не только для себя, но и для потомков.