Saturday, 15 June 2013

objective c - Pagination For NSTableview in cocoa -



objective c - Pagination For NSTableview in cocoa -

i have nstableview 1000+ rows in it. want add together pagination , add together limit of 100 in 1 view, , place , next button view next data.

i'm new cocoa development. can help me solve problem.

store info in files. (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;// 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]; } homecoming self; } -(ibaction)nextpage : (id)sender; { ++mpagenumber; if (mtotalpage<=mpagenumber) { mpagenumber=0;// point 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 info source - (nsinteger)numberofrowsintableview:(nstableview *)atableview { homecoming [mdatasource count]; } - (id)tableview:(nstableview *)atableview objectvaluefortablecolumn:(nstablecolumn *)atablecolumn row:(nsinteger)rowindex { homecoming [mdatasource objectatindex:rowindex]; } @end

objective-c cocoa pagination nstableview

No comments:

Post a Comment