代码之家  ›  专栏  ›  技术社区  ›  Devarshi

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

  •  0
  • Devarshi  · 技术社区  · 15 年前

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

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

    我的要求是-

    我想在第一排显示日期 标记为“开始”和日期的文本字段 在标记为的文本字段的最后一行中 “到”。

    我的问题是-

    我可以通过IB绑定来实现吗? 如果是,那怎么办?

    谢谢,

    米拉杰

    2 回复  |  直到 15 年前
        1
  •  1
  •   Alex Brown    15 年前

    是的,您可以这样做(或类似的操作),查看@min和@max array operators .

    下面是一个非常简单的版本:

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

    alt text

    下面是正在运行的应用程序(仅在interface builder的“simulate”模式下)。要使用它,请单击+然后单击表的顶行,在第一列中输入名称,在第二列中输入年龄。然后再重复几个人。

    alt text

    这一切看起来有点神秘,但这已经足够了。我添加了标签“最大年龄”和“最小年龄”在我的版本清晰。

        2
  •  0
  •   Joshua Nozzi    15 年前

    不幸的是,这不是绑定特别擅长的。你可以做到,但这将是非常棘手的。

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

    唯一“困难”的部分是,如果使用核心数据,则数据源类将需要观察托管对象上下文中的更改并重新加载数据(要么使用-reload Data刷新整个表,要么使用-reloadDataForRowIndexes:columndexes:cherry选择要刷新的行)。