2012-02-18 2 views
0

Я пытаюсь создать 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.

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

ответ

2

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

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

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

+0

Хорошее предложение. Любые выводы о том, как это сделать программно? –

+0

Я работаю над библиотекой с открытым исходным кодом, чтобы сделать это легко. Я обновляю свой вопрос своими результатами. Спасибо за толкание в правильном направлении! –

+0

@pcperini вы когда-нибудь получали решение? Мне нужно то же самое в моем приложении Mac –

Смежные вопросы