0
我有一個NSTableView
其中1000+行。現在我想爲它添加分頁,並在一個視圖中添加100的限制,然後放置返回和下一步按鈕以查看下一個數據。對於可可中的NSTableview分頁
我是新來的這種可可開發。 任何人都可以幫助我解決這個問題。
我有一個NSTableView
其中1000+行。現在我想爲它添加分頁,並在一個視圖中添加100的限制,然後放置返回和下一步按鈕以查看下一個數據。對於可可中的NSTableview分頁
我是新來的這種可可開發。 任何人都可以幫助我解決這個問題。
將您的數據存儲在文件中。 (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
在NSTableViewDataSource中實現分頁。 – 2013-02-19 08:06:40