2011-05-17 56 views
2

我有一個非常長的數據集,我想在NSScrollView中顯示。是否可以爲NSScrollView提供非常大的documentView?

有沒有什麼辦法可以指定幾十億像素的虛擬documentView寬度,但只是渲染到clipView大小的實際documentView?使用一個大型的documentView似乎可行,但它似乎不是正確的做法。

我會使用一個普通的ol'NSView,但我想獲得免費的鼠標/手勢滾動功能。

回答

2

如果使用標準文檔視圖(NSClipView),則將呈現的唯一像素是指定給它的scrollview的contentSize內的那些像素。因此,如果將scrollview的contentSize設置爲相當小,則無論文檔視圖的邊界有多大,它都應該顯示正常。

如果您擔心的是將大量數據加載到內存中,請考慮將數據拆分爲多個部分。每件應該比scrollview的contentSize可以顯示的大一些。監視滾動位置,以便當它接近當前顯示的內容的邊緣時,準備加載下一個片段。

只是爲了避免混淆:

// How to determine the size of the area that will be displayed: 
NSSize sizeOfDisplay = [scrollView contentSize]; 
// How to determine the full size of the content you have loaded: 
NSRect rectFullContent = [[scrollView documentView] bounds]; 
NSSize sizeFullContent = rectFullContent.size; 
相關問題