正如您所意识到的,NSTableView
不会自动保存选择。
最简单的方法是将你NSTableView
的 's绑定selectionIndexes
到你Array Controller
的 's上selectionIndexes
,然后从NSUserDefaults
. 然后你可以将阵列控制器绑定selectionIndexes
到Shared User Defaults Controller
(使用控制器密钥values
,你可以命名你的Model Key Path
任何东西)。因为NSIndexSet
需要存档/取消存档才能存储,所以使用NSKeyedUnarchiveFromData
值转换器。这本身就应该起作用。
如果您在重置选择索引时遇到问题,因为表格视图没有立即重新填充(我怀疑您会遇到这些问题,因为您正在填充绑定),您可以手动保存默认值。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:[NSKeyedArchiver archivedDataWithRootObject:self.arrayController.selectionIndexes] valueForKey:vvLastSavedSelectionIndex];
并检索它们:
NSIndexSet *selectionIndexes = [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] valueForKey:vvLastSavedSelectionIndex]];
[self.arrayController setSelectionIndexes:selectionIndexes];