【问题标题】:Reading Data From NSTableView从 NSTableView 读取数据
【发布时间】:2012-05-03 01:20:23
【问题描述】:

在获取被选中的 NSTableView 的数据时,获取选中的行,并将其与数据源中相同位置的项进行比较。

但是,我正在从不同的 XML 文件中读取数据,并根据屏幕上的某些选择进行显示。

我想直接从 NSTableView 中获取用户选择的数据。

我知道这违背了 MVC 模型以及所有其他方面,但我希望得到答案或一些关于如何做到这一点的提示。

【问题讨论】:

  • 如果我没有找到解决方案,我将创建一个单独的类,并在要添加新对象时拥有该类的实例,然后在阅读时使用这个新类.这最终将是一个更好的模型。但是,我仍然想知道是否有直接从 NSTableView 读取的解决方案。谢谢。
  • 表视图没有数据的内部缓存。数据源那个缓存。这就是重点。您必须从数据源获取数据。不过,这样做应该没有问题:[[tableView dataSource] tableView:tableView objectValueForTableColumn:theColumn row:theRow].
  • 谢谢,这很有意义并且很有效。即使没有定义正式的(单个)数据源,也不知道该语言会负责跟踪数据源。如果您想将您的回复作为答案,我可以将其标记为 :) 非常感谢!

标签: objective-c cocoa nstableview


【解决方案1】:

表视图没有数据的内部缓存。数据源就是那个缓存。这就是重点。您必须从数据源中获取数据。不过,这样做应该没有问题:[[tableView dataSource] tableView:tableView objectValueForTableColumn:theColumn row:theRow]

但是,当您说“即使没有定义正式(单一)数据源,也不知道 [it] 负责跟踪数据源”是什么意思?您的意思是您正在使用绑定而不是设置数据源?在那种情况下,我不会使用这种技术。在这种情况下,数据源的存在将是一个实现细节。对于绑定情况,您应该直接访问数组控制器。

【讨论】:

  • 不,我没有使用绑定。我的意思是说,我没有设置“官方”数据源,因为数据是从 XML 文件中获取并直接放入表视图中的。现在我看到了 XML 文件作为数据源,所以这只是我的一些困惑。谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 2021-09-20
  • 2018-04-11
  • 2012-04-03
  • 2017-07-13
相关资源
最近更新 更多