Add lots of views to NSScrollView

北慕城南 提交于 2019-12-10 10:59:07

问题


I'm trying to add one subview (view from an NSViewController) for every element in a dictionary to a NSScrollView to get kind of a tableview, but with much more flexibility over the cells.

Is it possible to place (programmatically) e.g. 100 subviews underneath each other so that you have to scroll down the NSScrollView to get to the last element???

Thanks in advanced, Grolior


回答1:


The short answer is yes. I have done this before, and I assure you that it will work. Let me also assure you that it is not quite as simple as it looks ;)

The way to do this is to maintain one content view, in which you add all of your custom rows as subviews programmatically. Note that you will either have to resize the contentView before adding all of the rows, or you will have to turn off autoresizing for the row views. Set the documentView of your scrollView to this custom contentView, and you should be good to go.




回答2:


Yes, simply initialize the views programmatically using (i.e.)

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

then add to the main using addSubview: method of the main view.
Remember to manually release the subview when you've done with it (that means, when you have added it to the main view).

As example you can do something like

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];
}


来源:https://stackoverflow.com/questions/7435721/add-lots-of-views-to-nsscrollview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!