Добавить много просмотров в NSScrollView - PullRequest
2 голосов
/ 15 сентября 2011

Я пытаюсь добавить одно подпредставление (представление из NSViewController) для каждого элемента в словаре к NSScrollView, чтобы получить вид таблицы, но с большей гибкостью по отношению к ячейкам.

Можно ли разместить (программно), например, 100 подпредставлений друг под другом, чтобы вам пришлось прокрутить вниз NSScrollView, чтобы добраться до последнего элемента ???

Спасибо заранее, Grolior

Ответы [ 2 ]

4 голосов
/ 15 сентября 2011

Краткий ответ - да.Я делал это раньше и уверяю вас, что это сработает.Позвольте мне также заверить вас, что это не так просто, как выглядит ;)

Способ сделать это - сохранить одно представление контента, в котором вы добавляете все свои пользовательские строки в качестве подпредставлений программным способом.Обратите внимание, что вам придется либо изменить размер contentView до , добавив все строки, либо вам придется отключить автоматическое изменение размеров для представлений строк.Установите documentView вашего scrollView на этот пользовательский контент-просмотр, и все будет хорошо.

1 голос
/ 15 сентября 2011

Да, просто инициализируйте представления программно, используя (т. Е.)

NSView *subView = [[NSView alloc] initWithFrame:CGRectMake(10,10,100,100)];

затем добавьте к основному, используя addSubview: метод основного вида.
Не забудьте вручную отпустить подпредставление, когда вы закончили с ним (это означает, что вы добавили его в основной вид).

В качестве примера вы можете сделать что-то вроде

int height x = 10, y = 10, width = 100, height = 100;

for(int i = 0;i<100;i++) {
    NSView *subView = [[NSView alloc] initWithFrame:CGRectMake(x,y + height*i,width,height)];
    [scrollView addSubview:subView];
    [subView release];
}
...