2010-11-19 158 views
1

我有一個NSScrollView,它是自定義NSView子類的父級。該子類使用NSScrollView的contentSize方法來佈置其子視圖。NSScrollView內容大小不正確

問題是,首次啓動時,NSScrollView報告contentSize錯誤。它報告的大小比它應該是15px多(滾動條的寬度)。所以在我看來,它沒有考慮到滾動寬度而返回contentSize;不過,只要我調整滾動視圖的框架(通過調整大小等),內容大小會正確報告。這似乎只是初次發佈時的一個問題。

這應該報告爲一個錯誤,並且有沒有什麼好的解決方案呢?我可以使用在佈局過程中執行檢查的骯髒方法來查看它是否是第一次調用該方法,然後從內容大小中減去15px,但是如果有更好的東西,那將不勝感激。

回答

0

你什麼時候檢查內容大小?當你的視圖是從nib文件實例化的時候,還是在nib被完全解壓後?

我可能會做的是從-viewDidMoveToWindow:-awakeFromNib

+0

我從-awakeFromNib調用它 – indragie 2010-11-20 02:28:23

2

我只是碰到了類似的問題,我解決了它是觀察上滾動視圖的內容視圖通知NSViewFrameDidChangeNotification的方式來調用你的佈局方法(在你的案例自定義NSView)。

當滾動條從滾動視圖中添加/刪除時,觸發此通知,此時您可以重新定位視圖的內容。

+0

謝謝收到! – dmitrynikolaev 2013-06-06 13:59:57

0

您是否使用該選項來自動隱藏/顯示滾動條?