我在使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,導致其子視圖的起源出差錯。
任何幫助將不勝感激!