我很难让我的 PXListView 和 NSScrollView 设置正常工作。这是它的要点:
我有一个包含 2 个 PXListViews 的仪表板页面。其中一个从 Core Data 获取数据,另一个从 RSS Feed 获取数据。这两个都添加到超级视图和关联的控制器中(我有仪表板以外的模式,所以这是最有效的方法)。这个超级视图成为我的 NSScrollView 的文档视图。
除了基于 RSS 提要的列表视图之外,我可以让所有这些都很好地工作。我异步获取提要,这样它就不会占用 UI,一旦收到提要并填充列表视图,我就会自动调整其大小。这一切都很好,但是我需要调整仪表板视图的大小以使滚动条向上。所以我发送了一个通知,该通知导致我创建了一个 autosizeView 方法,但这一切都陷入了困境。
两个 ListView 开始重叠,顶部的内容最终出现在底部。下面的截图(红色是边界矩形,蓝色是每个子视图的框架)
这是在调用 autosizeView 之前:
这是在调用它之后:
为了更好地衡量,如果我调整 PXListViews 的大小并且不调用 DashboardView 的 autosize 方法,这就是它的样子:
正如您所看到的,只要我不调用 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 大小时坐标被弄乱有关,导致其子视图的起源出错。
任何帮助将不胜感激!!!