我有一个NSTableview,它显示当前50行是固定的静态。现在我想在其中添加一个功能。当用户到达NSTableView的最后一行时,我想向表中添加更多50行。我的意思是目前我在应用程序中显示固定的50行。
但是现在我想在用户到达之前NsTableview的最后一行时再添加50行。
请给我任何建议或任何示例代码以实现我的动机。提前谢谢。
我所做的是(此代码不适用于所选行(按下向下键),并且不加载新行) -
-(void)awakeFromNib{
for(int i=0;i<25;i++)
[_list addObject:[[Person alloc] init]];
[_tableView reloadData];
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(scrollViewDidScroll:) name:NSViewBoundsDidChangeNotification object:[[_tableView enclosingScrollView] contentView]];
}
-(void) doSomething{
Person *p = [[Person alloc] init];
static int i =1;
NSString *string = [NSString stringWithFormat:@"John%i",i];
[p setName:string];
for(int i=0;i<25;i++)
[_list addObject:p];
// Need to use reloadDataForRowIndexes:columnIndexes: anyone please help me with this.
[_tableView reloadData];
i++;
}
- (void)scrollViewDidScroll:(NSNotification *)notification {
NSScrollView *scrollView = [notification object];
// Test if bottom of content view is reached.
CGFloat currentPosition = CGRectGetMaxY([scrollView visibleRect]);
CGFloat tableViewHeight = [self.tableView bounds].size.height;
if (currentPosition > tableViewHeight) {
// YOUR ACTION
[self doSomething];
}