我有一个非常简单的项目,包含一个NSTableView与3列和按钮添加新行,删除行和保存数据。是NSTableVIew绑定到NSArrayController不保存更改
对于这个项目,我想的值保存到NSUserDefaults的DB和做这一切,没有编码的目的,所以IB连接和性能如下:
新增通过IB阵列控制器对象。其控制器内容绑定到共享用户默认值控制器(控制器键:值,模型键路径:myvalues),将内容作为复合值处理。
添加设置为具有3列,并设置为基于视图的表格视图。
对于表视图本身,它的内容被绑定到阵列控制器(控制器密钥arrangedObjects)及其选择性指标筛选结合到阵列控制器(控制器密钥selectionIndexes)
对于表的每一列,表视图单元格项(链中的第三个)Value绑定到Table Cell View(控制器键为空,模型键路径设置为objectValue.xxxx,其中xxxx是该列的任意名称字符串);行为属性也设置为“可编辑”。
将添加行和删除行按钮发送操作连接到阵列控制器添加和删除方法,并将保存按钮发送操作链接到共享用户默认值保存方法。
当我运行项目时,我最初可以“添加”,输入列的值,单击保存,结束执行,当我重新运行它时显示数据。但是,如果我然后尝试更改任何数据,则更改将不会保留。如果我添加额外的行,并输入数据不保留(行将在那里,只是空的)。删除行按预期工作。 (注:另外,如果我加入的初始执行几行,只有第一个将不得不在后续执行数据)
我的问题是:为什么不将数据更改(第一后)工作?似乎有某个地方有一个缺失的图层。
我创建了第二个项目,与第一个非常相似,但指定了基于单元格的表格而不是基于视图;对于表视图,NO绑定也更简单,但直接将表单元格Value绑定到Array控制器。这个项目完美运作。单元格数据可编辑,进入新的行数据等
任何帮助,将不胜感激
复制http://stackoverflow.com/q/27308592/1312143我回答,虽然我从来没有听说过回如果我的回答工作的。试试看看。 – 2015-03-02 22:59:58
感谢您的回应;因为我的目标是在没有任何编码的情况下做到这一点,我想我现在只需坚持基于单元格的表格。如果我将来尝试你的方法,会让你知道它是否有效。 – user2132980 2015-03-03 14:16:12