1

我正在尝试通过绑定填充 2 列 NSVTableView,但数据未显示在表中。

在 XCode 中:

我的 AppDelegate 中有一个 NSMutableArray,它将保存数据以及相应的 @property 和 @synthesize。

在一个事件中,我在 NSMutableArray 上调用 [removeAllObjects] 并用一些 NSDictionary 对象重新填充它。每个字典包含 2 个 KVP:一个 NAME 和一个 VALUE。

在 IB 中:

我添加了一个 NSArrayController 并将它的 Content Array 绑定到我的 AppDelegate 并将 ModelKeyPath 设置为 AppDelegate 中 NSMutableArray 的名称。

在 NSTableView 上,我将 Content 绑定到 ArrayController。ControllerKey = "arrangedObjects",ModelKeyPath =

对于两列中的每一列,我将 Value 绑定到 AppController 并将 ModelKeyPaths 分别设置为 NAME 和 VALUE。ControllerKey = "排列对象"。


我尝试了其他几件事,例如在应用程序委托中使用 NSArray 并在每次需要更新值时创建一个新的。一定有一些小事我忘记了。它是什么?

乔吉

4

1 回答 1

4

NSArrayController 在存储方面与 NSMutableArray 没有太大区别。如果您可以使用类似的东西[[mutableArray firstObject] valueForKey:@"NAME"];并取回您需要的值,那么数组控制器应该能够为您提供正确的值,并且如果您有正确的连接,绑定应该可以工作。

但是,如果上述代码行没有为您提供所需的值,那么您将遇到不同的问题。很难确定,但我现在假设您有一个字典数组,它们都有相同的两个键(我们称它们为firstKeyand secondKey)。Ii 将进一步假设目标是让第一列显示 的所有值,firstKey第二列显示 的值secondKey。在这个理论下,你的 AppDelegate 中的 NSMutableArray 保持你上面描述的方式,但是你的绑定会改变一点。

首先,确保您正在使用的 nib 文件的 File's Owner 设置为AppDelegate.

然后,ArrayController 内容数组应该绑定到File's Owner.mutableArray.

表格视图的整体绑定并不是非常重要,因为我在绑定列时没有任何问题。

第一列的值应该绑定到ArrayController.arrangedObjects.firstKey. 第二列当然是一样的,只是模型键路径是secondKey.

于 2010-05-31T02:33:45.143 回答