NSTableView
1000 行以上の があります。ここで、ページネーションを追加し、1 つのビューに 100 の制限を追加してから、次のデータを表示するための [戻る] ボタンと [次へ] ボタンを配置します。
私はこのココア開発に不慣れです。誰でもこの問題を解決するのを手伝ってくれますか?
NSTableView
1000 行以上の があります。ここで、ページネーションを追加し、1 つのビューに 100 の制限を追加してから、次のデータを表示するための [戻る] ボタンと [次へ] ボタンを配置します。
私はこのココア開発に不慣れです。誰でもこの問題を解決するのを手伝ってくれますか?
データをファイルに保存します。(page0、page1 ..)
/* page0 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>/Volumes/Drop Box</string>
<string>/Volumes/Backup</string>
<string>/Users/Music</string>
</array>
</plist>*/
#import <Cocoa/Cocoa.h>
@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