【问题标题】:Updating NSTableView after adding an item to array将项目添加到数组后更新 NSTableView
【发布时间】:2010-11-13 21:50:59
【问题描述】:

我有一个表视图,其列绑定到数组控制器。我正在以编程方式将项目添加到数组中:

Person 只是一个自定义类;

personsPresent 在另一个名为 Meeting 的类中,它是一个包含 Person 对象的 MutableArray。

Person *newPerson = [[Person alloc]init];
[[[self meeting] personsPresent] addObject:newPerson];
[[self tableView] reloadData];

这可行,但在我对列进行排序之前,这些值不会显示在我的表格视图中。我认为 reloadData 会为我做这件事。

在我的 xib 中,我的 nsarraycontroller 的 objectcotnroller 设置设置为 Class 和 Person。它是绑定到文件所有者的控制器内容,它的模型密钥路径是 meeting.personsPresent。

任何帮助将不胜感激。

标记

【问题讨论】:

    标签: objective-c nsmutablearray nstableview


    【解决方案1】:

    你正在改变数组控制器背后的数组。要么要求数组控制器 -rearrangeObjects(臭),要么使用它的 -addObject: 方法(更好)。

    【讨论】:

    • 好吧......所以我很困惑(毫不奇怪)应该是什么。我的数组控制器在 MyDocument 中(这是一个 NSDocument)。那是我的控制器。它实例化了包含 peoplePresent 数组的会议变量。我已经将数组控制器绑定到那个。所以我不清楚如何将对象添加到我的数组中,以便我的控制器知道它们。
    • 请重新阅读我的回答。您可以使用 NSArrayController 的 -addObject: 方法将对象直接添加到数组控制器中。
    • 我是否需要从我的阵列控制器创建一个 iboutlet 以便以编程方式访问它?
    • 是的,如果您没有指向它的指针,则需要创建一个(如果它在您的 Nib 中实例化,则以插座的形式)。然后你可以根据需要给它发消息。
    • Cool 让这两种方法都有效,臭的方法和最好的方法。谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多