将数据添加到滚动视图/表

时间:2011-08-11 20:23:41

标签: objective-c xcode cocoa macos

我有一个包含NSTableView的NSCrollView。它有3列4行。我有4个NSStrings,其内容需要复制到scrollview中。

使用Xcode 4我尝试连接表或NSTextFieldCell,然后通过

添加文本
[_Cell1 setStringValue:MyString]; 

但没有任何反应。它没有得到更新。

有什么办法吗? 谢谢。

编辑:

我发现了the following answer类似的问题。我仍然感到困惑,但在阅读了Apple关于绑定的例子后,我只能说这个没有任何意义,所以有很多代码可以实现这么简单的事情。这就是一切都是对象和一般OOP的问题。

那里有简单的样本吗?我甚至不知道如何开始设置或连接您需要连接的大量内容以开始使用此

3 个答案:

答案 0 :(得分:1)

您应该使用NSTableViewDelegate。这是NSTableView调用的一组方法,用于获取应显示的数据。您只需要声明tableview的委托对象。

Delegate Protocol

NSTableView Tutorial

答案 1 :(得分:0)

您可以使用NSArrayController并将表列的值绑定绑定到数组控制器的已排列对象。然后将要显示的值添加到阵列控制器。

答案 2 :(得分:0)

不幸的是,您无法“添加”或“设置”表格视图的内容。与大多数视图对象一样,表视图不存储内容;它取决于控制器在需要时提供内容。

有两种选择:

  • 数据来源:最简单,最易于理解
  • 绑定到数组控制器:难以理解,但实施工作量较少

关于此主题的最佳Apple资源:表视图编程指南中的Populating Cell-Based Table Views。如果你正在努力,我建议你从数据源选项开始。它只是几行代码,您可以调整该文档中的简单样本。

要填充表格,您需要实施以下两种方法:

– numberOfRowsInTableView:
– tableView:objectValueForTableColumn:row:

要更改数据,您需要再实施一次:

- tableView:setObjectValue:forTableColumn:row:

您需要将控制器设置为界面构建器中表视图的数据源。对此的正确协议是NSTableViewDataSource,而不是NSTableViewDelegate