NSTableView
是我用來顯示數百萬條數據,由於超時而無法得到響應。如何知道我們到達了NSTableView的最後一行
所以我決定要響應的網頁說,1-100然後101-200等
所以我的問題就在這裏開始,我怎麼能知道我已經達到的tableView或單元結束是可見的說100排?
我不想實現Load More..
樣的按鈕等
這個之後,我將發送新的範圍新的響應。
這裏是我到目前爲止已經試過:
試圖跟蹤滾動視圖,並通過服務調用獲得下一組數據。
* 它適用於老鼠標,但刷卡失敗。
NSTableView
是我用來顯示數百萬條數據,由於超時而無法得到響應。如何知道我們到達了NSTableView的最後一行
所以我決定要響應的網頁說,1-100然後101-200等
所以我的問題就在這裏開始,我怎麼能知道我已經達到的tableView或單元結束是可見的說100排?
我不想實現Load More..
樣的按鈕等
這個之後,我將發送新的範圍新的響應。
這裏是我到目前爲止已經試過:
試圖跟蹤滾動視圖,並通過服務調用獲得下一組數據。
* 它適用於老鼠標,但刷卡失敗。
也許你可以滾動之後確定最後可見行,我有一個子類NSTableView的用這種方法
@interface MyTableView : NSTableView
- (NSInteger)lastVisibleRow;
@end
@implementation MyTableView
- (NSInteger)lastVisibleRow {
NSRect bounds = [[self superview] bounds];
bounds.origin.y += bounds.size.height - 1;
return [self rowAtPoint:bounds.origin];
}
@end
+1,是的,這幫助我得到最後一個可見的行。 –
太棒了!這幫助了我。但我需要添加觀察者到tableView滾動對嗎? 'NSViewBoundsDidChangeNotification'?然後在通知中,我檢查'lastVisible row> = rowcount',然後重新載入更多數據。 – GoodSp33d
哎呀對不起,想我誤解你的問題 – Eugene
你不應該擔心什麼,你行到達了。當你實現數據源時,你會被問到正確的行,根據哪些行是可見的。足夠讓你把它們放在緩存中。例如,如果行在緩存中,您只需返回它的值,那麼會詢問第50行,否則,您會從0到100([N-50,N + 50])中獲取行並將它們放入緩存中。 –
@Eugene:好的。 –