2
我有一个NSScrollView在Mac应用程序,其中我迭代地添加(相同)添加填充子视图。但是,当窗口出现时,滚动视图的底部可见,但滚动条位于顶部。向上或向下滚动最初导致滚动视图快速跳转到一个位置,那么它会smoothy滚动正常。此外,它似乎在底部添加了一个很大的空白空间,但这可能只是我的代码。NSScrollView跳跃周围,在底部
for (int i=0; i<[userList count]; i++) { ///user list is an array of ID strings
PaneViewController *pane = [[PaneViewController alloc] initWithNibName:@"PaneViewController" bundle:nil];
[pane setPaneID:[userList objectAtIndex:i]];
pane.view.frame = CGRectMake(0, (i*pane.view.frame.size.height), pane.view.frame.size.width, pane.view.frame.size.height);
[self.scrollView.contentView addSubview:pane.view];
}
[self.scrollView.documentView setFrame:CGRectMake(0, 0, self.scrollView.frame.size.width, ([userList count])*125)]; /// 125 is the height of the paneView
[self.scrollView.verticalScroller setFloatValue:0.0];
这表明当行
[self.scrollView.contentView addSubview:pane.view];
改为
[self.scrollView.documentView addSubview:pane.view];
最后,虽然我没有测试它,因为意见是相同的相同的行为,我的直觉告诉我说,这是要填补底部到顶部,即[userList objectAtIndex:0]
将在列表的底部被分配到该视图,因为可可怪诞的坐标系。这是真的吗?如果是这样,我该如何解决?
P.S. - 滚动视图在界面生成器中设置,如果重要的话。此外,使用NSListView代替NSScrollView是不是一个真正的选项,有很多原因。