0

在我的 MainController 中,有一个 people 数组,它绑定到一个 NSArrayController。人员的姓名显示在表格name列中。如果我将一个按钮绑定到 NSArrayController add 方法,我可以添加按钮来添加一个新人,但是如果在方法中添加新人,表格不会显示新人,我不知道为什么。

在此处输入图像描述

我添加新人的代码

Person *p =[[Person alloc]init];
[self.persons addObject:p];

更新:我知道http://chanson.livejournal.com/85659.html的答案, 因为 NSMutableArray addObject 不是 KVC,所以我需要使用

  [[self mutableArrayValueForKey:@"persons"] addObject:person];
4

1 回答 1

1

如果 [self.persons addObject:p] 行中的 self.persons 指的是数组,那么您需要添加行 self.persons = persons; 在它更新表格之后。我一直不太清楚为什么这是必要的,大概是与 KVO 有关。

另一方面,如果 self.persons 指的是数组控制器,那么它应该像您编写的那样工作,因为将对象添加到数组控制器就是将其添加到其排列的对象中,表列绑定到该对象。这样做也会更新数组,因为它绑定到数组控制器。

于 2012-07-25T15:31:05.217 回答