向NSScrollView添加大量视图

时间:2011-09-15 18:33:31

标签: objective-c cocoa appkit nsscrollview nsviewcontroller

我正在尝试为字典中的每个元素添加一个子视图(来自NSViewController的视图)到NSScrollView以获得一种tableview,但是在单元格上具有更大的灵活性。

是否可以(以编程方式)放置,例如100个子视图在彼此之下,因此您必须向下滚动NSScrollView才能到达最后一个元素???

先谢谢了, Grolior

2 个答案:

答案 0 :(得分:4)

简短的回答是肯定的。我以前做过这个,我向你保证它会起作用。我还要向你保证,它不像看起来那么简单;)

执行此操作的方法是维护一个内容视图,您可以通过编程方式将所有自定义行添加为子视图。请注意,您必须在添加所有行之前调整contentView 的大小,否则您必须关闭行视图的自动调整大小。将documentView的{​​{1}}设置为此自定义contentView,您应该很高兴。

答案 1 :(得分:1)

是的,只需使用(即。)

以编程方式初始化视图
NSView *subView = [[NSView alloc] initWithFrame:CGRectMake(10,10,100,100)];

然后使用主视图的addSubview:方法添加到main 请记住在完成子视图后手动释放子视图(这意味着,当您将子视图添加到主视图中时)。

例如,您可以执行类似

的操作
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];
}