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是不是一個真正的選項,有很多原因。