我有一个NSMutableArray,我加载了我的tableview.现在我在UI中有一个Button,它允许用户多次刷新进入数组的数据.
每次在Array中有新数据我想刷新tableView.
只是在更新阵列后执行[tableView reloadData]似乎带来了沙滩球.
关于什么是实现这一目标的好方法的任何想法?
此外,我一直在研究绑定作为一种从阵列实现我的NSTableView的方法,但是当他们想要在表中添加数据时,在线显示的所有示例都使用绑定吗?
任何人都可以指出我如何使用Bindings将数据加载到tableView中?
对不起,如果问题是noobie问题,我愿意阅读是否有人可以指出我正确的数据.谢谢:)(我不是在找一条捷径,只是想从经验丰富的人那里得到一些有关如何处理这些事情的建议)
-(IBAction)refreshList:(id)sender
{
//setup array here and sort the array based on one column. This column has
identifier 'col1' and it works as expected
[aTable reloadData];
}
- (int) numberOfRowsInTableView:(NSTableView *)aTable
{ // return count of array
}
- (id)tableView:(NSTableView *)aTable objectValueForTableColumn: (NSTableColumn *)
tableColumn row:(int)row
{
//set up arrays here to load data in each column
}
- (void)tableView:(NSTableView *)aTableView sortDescriptorsDidChange:(NSArray
*)oldDescriptors
{
//sort here when column headers are clicked
}
-(IBAction)autorefresh:(id)sender
{
// Here i am trying to reload the array and refresh the tableView. I want to
constantly keep refreshing the array and loading the tableView here. The array does
get refreshed but I am having trouble loading the tableView.
for ( int i =0; i<=2;i++)
{
// reload the array with data first.
[aTable reloadData];
i = 1;
}
最佳答案 有了这个代码(特别是你的非常新颖的“while true”循环),你得到一个沙滩球,因为你永远不会回到男人的跑步循环.在设置NSTableView之后修复这样的使用代码,它将每1.0秒运行一次
NSTimer* timer = [NSTimer timerWithTimeInterval:1.0
target:[NSApp delegate]
selector:@selector(myReloadData:)
userInfo:nil
repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
然后在您的app delegate中创建myReloadData
- (void)reloadMyData:(NSTimer*)ntp
{
// reload the array with data first.
[aTable reloadData];
}