Обивка вокруг NSTableView - PullRequest
       24

Обивка вокруг NSTableView

4 голосов
/ 17 января 2012

У меня следующая проблема. Существует подкласс NSScrollView с представлением, основанным на NSTableView. Я добавил пользовательский фон к представлению прокрутки в методе подкласса -drawRect: и теперь я хотел бы добавить «отступ» к внутреннему табличному виду, например:

пример http://img.skitch.com/20120117-ktd9g5wy8u9cm37jeebjjxx61u.png

Как я могу это реализовать?

Ответы [ 4 ]

2 голосов
/ 23 мая 2016

Если вы ориентируетесь на Mac OS 10.10 или более позднюю версию, вы можете использовать

[scrollView setAutomaticallyAdjustsContentInsets:NO];
[scrollView setContentInsets:NSEdgeInsetsMake(top, right, bottom, left)];
2 голосов
/ 18 января 2012

Наконец-то я решил проблему.Я создал NSView (давайте назовем его documentContentView), добавил мой NSTableView в качестве подпредставления этого documentContentView, затем я добавил documentContentView в viewView scrollview:

NSTableView *docView = (NSTableView *)self.scrollView.documentView;
id newClipView = [[CustomClipView alloc] initWithFrame:[self.scrollView.contentView frame]];
[self.scrollView setContentView:(NSClipView *)newClipView];
[newClipView setDrawsBackground:NO];   

NSView *documentContentView = [[NSView alloc] initWithFrame:docView.bounds];
docView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
[documentContentView addSubview:docView];
[self.scrollView setDocumentView:documentContentView];
[self.scrollView setDrawsBackground:NO];

Я создал свой пользовательскийNSClipView вызвал CustomClipView (на основе этой статьи http://www.cocoadev.com/index.pl?CenteringInsideNSScrollView), и этот подкласс устанавливает источник documentContentView при изменении размера окна. Я также подклассифицировал свое табличное представление, и в методе -reloadData я могу изменить размер documentContentView при просмотре таблицыизменить его содержимое.

1 голос
/ 02 февраля 2014

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

1 голос
/ 17 января 2012

Прежде всего, не добавляйте фоны в drawRect:. Добавьте его в свой initWithFrame:, если вы создаете подклассы, или измените его из вызывающего.

Добавить заполнение просто: измените frame из NSTableView так, чтобы он был меньше и имел начало координат, которое не равно 0,0.

...