gpt4 book ai didi

cocoa - 如何存储每个父项的子 NSTableView 设置?

转载 作者:行者123 更新时间:2023-12-03 17:44:02 25 4
gpt4 key购买 nike

存储 NSTableView 的最佳方式是什么?其父项中每个项目的设置(最好利用其自动保存功能)NSTreeController ?我基本上希望重现 iTunes 分别存储每个播放列表的列设置的方式。

不过,我有很多列,并且不想手动存储每个单独的列大小等。我也在使用核心数据,并且希望有一个使用我现有的数据模型来持久化的解决方案此信息。

更新

我发现了一些代码 ( a Category from Daniel Jalkut ),可以轻松存储和读取 NSDictionary NSTableView 的表示的列设置。因此,我在核心数据实体中创建了一个二进制属性,该属性现在存储该实体 View 的设置。

我希望能够做的是在选择实体的每个实例时自动检索设置。我曾尝试在我的 NSTreeController 上使用键值观察来做到这一点,但不幸的是它没有给我足够的通知。我想知道我要切换的项目,以便我可以存储前一个节点的设置,然后再用新节点的设置覆盖它们。

我尝试观察@"selection" , @"selectedObjects" ,和@"selectedIndexPaths" ,每个 options我能找到一些论点,但似乎没有一个能正常工作。我在适当的时间收到通知,但 "change" 中没有任何有用的信息属性更改发送的字典。

最佳答案

我决定使用 NSTableView+RSAutosaving我链接到上面的类别(由 Daniel Jalkut 和 Red Sweater Software 提供),并进行了一些修改以存储列是否隐藏。我将此 NSDictionary 作为二进制数据属性存储在我的 Core Data 父实体中(并且我创建了另一个来单独存储排序信息)。

然后,我让窗口 Controller 监听来自 NSOutlineView 的两个通知。关于@"NSOutlineViewSelectionIsChangingNotification"通知,NSTreeController 的选择是旧节点。我此时存储了 NSTableView 的设置。然后,在 @"NSOutlineViewSelectionDidChangeNotification"通知,我从新节点读取了设置。这就像一个魅力。

关于cocoa - 如何存储每个父项的子 NSTableView 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com