我在使PXListView和NSScrollView安装程序很好地工作时遇到了极大的困难。 这是它的要点:调整NSView以容纳子视图
我有一个仪表板页面是包含2 PXListViews。其中一个从Core Data获取数据,另一个从RSS Feed获取数据。这两个都被添加到一个超级视图和相关的控制器(我有模式以外的其他模式,所以这是最有效的方式)。 这个超级视图变成了我的NSScrollView的documentView。
我可以很好地工作,除了基于RSS提要的列表视图。 我正在异步获取供稿,因此它不会占据用户界面,并且一旦收到供稿并填充列表视图,我就会自动调整其大小。 这一切都很好,但是我需要重新调整我的仪表板视图以获得滚动条。所以我发送了一个通知,导致我创建的autosizeView方法,但这一切都到了地狱。
两个ListView开始重叠,顶部的内容结束了。下面的截图(红色是边界矩形,每个子视图的蓝色框)
这是调用之前autosizeView:
这是调用它后:
和良好的措施,这是它是什么样子,如果我调整PXListViews不叫DashboardView的自动调整方法:
正如你所看到的,它工作得很好,只要我不叫autosizeViews但我没有得到日电子滚动器正在发生。这里是我的autosizeView方法:
-(void)autosizeView
{
//Resize the view to accommodate all subviews
NSRect oldFrame = [[self view] frame];
CGFloat lastY = [_activityView frame].origin.y;
if (lastY < 0) {
CGFloat newHeight = oldFrame.size.height + (-lastY);
[[self view] setFrameSize:NSMakeSize(oldFrame.size.width, newHeight)];
}
}
我猜这整个事情有事情做与被打乱的坐标,当我调整DashboardView,导致其子视图的起源出差错。
任何帮助将不胜感激!