Я пытаюсь создать NSTableView с закругленными углами (как и стиль таблицы Grouped
iOS). Однако это очень сложно.NSTableView Rounded Corners, такие как UITableView Groups
Я пытался использовать 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 раньше, однако они не смогли предоставить удовлетворительные решения.
Rounded corners on NSTableView имеет 1 «правильный» ответ, по-видимому, обозначенный так просто, потому что ассер изменил свою цель. Этот вопрос дал мне подсказку попробовать NSBezierPath
, но, как я уже сказал, я не могу заставить этот метод работать.
NSTableView rounded corners предлагает подклассифицировать NSScrollView, однако это также не отвечает требованиям CALayers
.
Любые предложения были бы весьма полезными. Я хотел бы получить четкий ответ не только для себя, но и для потомков.
Хорошее предложение. Любые выводы о том, как это сделать программно? –
Я работаю над библиотекой с открытым исходным кодом, чтобы сделать это легко. Я обновляю свой вопрос своими результатами. Спасибо за толкание в правильном направлении! –
@pcperini вы когда-нибудь получали решение? Мне нужно то же самое в моем приложении Mac –