通过绑定在表视图中显示两行,分别在两个文本字段中显示

时间:2010-11-21 14:19:11

标签: cocoa cocoa-bindings nsarraycontroller

我有一个名为transaction的类,其中一个属性是transactionDate,类型为NSDate。

我正在使用NSArrayController在表视图中显示事务列表。

我的要求是 -

  

我想在第一行显示日期   标记为“发件人”和日期的文本字段   在标记为的文本字段的最后一行   “收件人”。

我的问题是 -

  

我可以通过IB中的绑定来实现这一目标吗?   如果是,那么如何?

谢谢,

Miraaj

2 个答案:

答案 0 :(得分:1)

是的,你可以这样做(或类似的东西),请参阅@min和@max array operators

以下是如何做一个非常简单的版本:

  1. 打开Interface Builder - 创建新应用程序
  2. 添加NSArrayController,将其设置为自动准备内容。
  3. 添加表格,标记两列"name""age"
  4. 添加一个按钮(标记为"+")和两个标签(将名称更改为maxvalminval
  5. 按如下方式连接NSArrayController绑定:
  6. alt text

    这是运行的应用程序(仅在界面构建器“模拟”模式下)。要使用它,请单击+然后单击表格的顶行,并在第一列中添加名称,在第二列中添加年龄。然后重复几个人。

    alt text

    这一切看起来有点神秘,但这已经足够了。为了清晰起见,我在我的版本中添加了“Max Age”和“Min Age”标签。

答案 1 :(得分:0)

不幸的是,这不是Bindings特别擅长的。你可以实现它,但它会非常hacky。

NSTableViewDataSource协议仍然是向表提供数据的完全相关且有效的方法。在这些情况下(您不仅仅是向表中提供直接的一组统一数据),数据源协议是解决问题的唯一有效方法。这样您就可以完全控制表格显示的内容。

唯一的“硬”部分是,如果您正在使用Core Data,您的数据源类将需要观察托管对象上下文以进行更改并重新加载数据(-reloadData以刷新整个表或使用 - reloadDataForRowIndexes:columnIndexes:樱桃选择要刷新的行。)