Objective-C:如何从NSArrayController填充NSTableView,并使用共享默认值控制器保存选定的索引?

时间:2012-05-20 03:01:10

标签: objective-c nsuserdefaults preferences nstableview nsarraycontroller

我有一个NSTableView,我想从NSArrayController加载它的值。该数组是动态构建的,有可能发生变化。我还想在NSUserDefaults中保存所选索引,理想情况是通过绑定到共享用户默认控制器,但我看不到如何在绑定中实现。有没有办法做到这一点?

扩展..

在我的数组中,我有一个自定义类的实例。我只想显示一个NSString字段,一个名字。这是一个多选表格视图。我希望他们一改变就把它们保存起来。

我知道如何使用共享用户默认值控制器通过绑定将字段保存到首选项。我知道如何设置TableView以使用数组控制器来显示我想要显示的数据。

我似乎无法同时做到这两件事。

1 个答案:

答案 0 :(得分:2)

将数组控制器的选择索引绑定到共享用户默认值控制器,控制器键为“值”,模型键路径为您要调用的任何值。您还需要选择NSKeyedUnarchiveFromData值转换器。然后在你想要检索所选索引的代码中,你可以这样做(这里我只是记录它,我在我的绑定中使用了名字“selIndxs”):

NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
NSLog(@"%@",[NSKeyedUnarchiver unarchiveObjectWithData:[ud valueForKey:@"selIndxs"]]);