【问题标题】:Change value in array controller by typing in table view cell通过输入表格视图单元格来更改数组控制器中的值
【发布时间】:2013-06-13 15:04:51
【问题描述】:

所以我有一个CPTableView2 columns。我的CPTableViewArray Controller 填满,它与CPTableView 列绑定。

我知道如何填充,重新填充表格视图,没问题。

我的问题是我想改变一个单元格的值,当然这个值也必须在数组控制器中改变。

所以我通过双击单元格输入我的新值,输入它。好的,但是数组中的值没有改变,这很正常,因为我没有告诉数组这样做。

但是要更改数组中的值,我必须能够获取我在单元格中写入的新值以放入数组中。

我不能这样做,或者我不知道该怎么做。

我尝试了 CPTableColumn 方法:dataCellForRow,但它不起作用,调试器告诉我使用dataViewForRow。好的,我使用它,但是当我获取单元格值时,它总是返回:“文本单元格”为 IB 中的单元格设置的默认标题。

所以我真的不知道该怎么做。

【问题讨论】:

  • 你在卡布奇诺中有一个 UITableView 吗?你不是说 CPTableView 吗?
  • 是的,一个CPTableView,我写了TableView,有人编辑我的帖子写UITableView。

标签: objective-c cappuccino objective-j


【解决方案1】:

尝试告诉数组值已更改。然后重新加载表。

执行以下步骤: 1)价值改变。在数组中改变它 2)重载表(UItableView有reloadData函数)。并且因为您将数组与表重新加载绑定将自动更新表

【讨论】:

  • 当然,我想这样做,但我的问题是我无法更改数组中的值,因为我无法获取新值。
【解决方案2】:

如果您使用正确绑定到CPArrayControllerCPTableView,您的表格单元格值应在您编辑它们并通过“反向绑定”提交更改时自动更新。也许仔细检查你是否绑定了每列的CPValueBinding

看看这个手​​动测试:Tests/Manual/ArrayController1 在 Cappuccino 存储库中。如果我不记得错了,它会实现这一点。

如果失败,您始终可以使用此表视图委托方法手动完成:

tableView:setObjectValue:forTableColumn:row:

尝试将这样的内容添加到您的表委托(未经测试):

- (void)tableView:(CPTableView)tableView setObjectValue:(id)aValue forTableColumn:(CPTableColumn)tableColumn row:(int)aRow
{   
    var name = [tableColumn identifier];

    CPLog.info("Row %d of table column %@ changed to %@.", aRow, name, aValue);
    // ... change actual model here.
}

查看 Cappuccino 存储库中的 Tests/Manual/TableTest/Editing 以获取相关示例。

【讨论】:

  • 好的,谢谢,我会检查一下,如果我成功了,我会告诉你的。
  • 我看到在示例中,列和绑定是以编程方式创建的。我在 IB 中将我的列与我的 CPArrayController 绑定,它工作正常。我不知道为什么使用 IB 绑定,CPArrayController 不知道单元格值发生了变化..
  • 应该也适用于 IB 绑定。如果您确信绑定正确但仍然无法正常工作,请创建一个最小的测试用例并在此处提交错误报告:github.com/cappuccino/cappuccino/issues
【解决方案3】:

事实上,它有效,我不是在好的方式..

为了检查我的单元格值是否已更改,我在包含数据的“CPArray”中查找它。但是这个数组没有绑定到我的'CPTableView',它是绑定的'CPArrayController'。所以我检查了这个,我看到单元格值已正确修改!

感谢您的宝贵时间。

【讨论】:

    猜你喜欢
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 2016-03-05
    • 1970-01-01
    • 2017-12-06
    • 2013-06-14
    相关资源
    最近更新 更多