【发布时间】:2015-09-03 17:23:58
【问题描述】:
我正在尝试找到一种方法来允许我在 NSTableView 中加载更多数据,以便用户可以看到他的所有数据。但是,我只习惯于 iOS 开发而不是 Mac OSX 开发。 iOS 有一种方法可以让您下拉 UITableView 以加载更多数据。 Mac OSX 开发有这样的方法还是有更好的选择?我听说过使用“页面”来实现这一点,但我不知道这是否是最好的方法。我用谷歌搜索这个,但一直给我 iOS 结果。
附:如果您提供视觉和代码示例,我将不胜感激,以便我更好地理解。
编辑:我在互联网上看到了这段代码。我想我可以实现这样的东西来一次加载少量数据。 Fetch data 可以抓取每页的下 100 个数据。
@interface ViewController : NSObject {
NSTableView *tableView;
NSMutableArray *mDataSource;
NSInteger mPageNumber;
NSInteger mTotalPage;
}
-(IBAction)nextPage : (id)sender;//for next page
-(IBAction)prevPage : (id)sender;// for prev. page
-(void)fetchData;
@property (assign) IBOutlet NSTableView *tableView;
@end
#import "ViewController.h"
@implementation ViewController
@synthesize tableView;
- (id) init
{
self = [super init];
if (self != nil) {
mDataSource = [[NSMutableArray alloc] init];
mPageNumber=0;
mTotalPage =2;// total numer of pages
[self fetchData];
}
return self;
}
-(IBAction)nextPage : (id)sender;
{
++mPageNumber;
if (mTotalPage<=mPageNumber) {
mPageNumber=0;// point to first page
}
[self fetchData];
}
-(IBAction)prevPage : (id)sender;
{
--mPageNumber;
[self fetchData];
}
-(void)fetchData;
{
[tableView setDataSource:nil];
NSString *lDataSourcePath = [[NSString alloc] initWithFormat:@"/page%d",mPageNumber];
NSArray *lDataSource = [[NSArray alloc] initWithContentsOfFile:lDataSourcePath];
[mDataSource setArray:lDataSource];
[lDataSource release];
[lDataSourcePath release];
[tableView setDataSource:self];
[tableView reloadData];
}
-(void)dealloc
{
[mDataSource release];
[super dealloc];
}
#pragma mark Data Source
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
return [mDataSource count];
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
return [mDataSource objectAtIndex:rowIndex];
}
@end
【问题讨论】:
-
视觉和代码示例 -> 你会得到报酬 ;) 不错的尝试
-
这是你应该开始的地方 developer.apple.com/library/mac/samplecode/iSpend/Introduction/… 如果窗口伸展 tableview 要求更多数据。如果需要,您可以以编程方式滚动,并且 tableview 会要求更多数据。
标签: objective-c macos cocoa pagination nstableview