Я пытаюсь найти способ, позволяющий мне загружать больше данных в NSTableView, чтобы пользователь мог видеть все свои данные. Тем не менее, я использую только для разработки iOS, а не для разработки Mac OSX. У iOS есть способ, с помощью которого можно загружать UITableView для загрузки большего количества данных. Есть ли такой способ для разработки Mac OSX или есть лучшая альтернатива? Я слышал что-то об использовании «страниц» для достижения этого, но я не знаю, является ли это лучшим способом. Я google это, но продолжает давать мне результаты iOS.Mac OSX: Каков наилучший способ разбивки на страницы для загрузки большего количества данных для NSTableView?
P.S. Я буду признателен, если вы предоставили визуальные и примеры кода, чтобы я мог лучше понять.
Редактировать: Я вижу этот фрагмент кода в Интернете. Наверное, я могу реализовать что-то подобное, чтобы загружать сразу несколько данных за раз. Извлечение данных может захватить следующие 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
примеры визуального и кода -> и у вас платят за это;) nice try –
Здесь вы должны начать https://developer.apple.com/library/mac/samplecode/iSpend/Introduction/Intro.html# // apple_ref/doc/uid/DTS10003625 Если окно растягивает tableview, запрашивает больше данных. Вы можете запрограммировать прокрутку, если вам нужно, и tableview запросит больше данных. –