gpt4 book ai didi

objective-c - 将 NSPredicateEditor 绑定(bind)到共享用户默认 Controller

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

我有一个 NSPredicateEditor,它是我正在制作的工具的首选项面板的一部分。

我想存储用户的选择,就像存储 NSUserDefaults 对象中的任何其他项目一样,但是当我将 Binding 添加到 NSPredicateEditor 对象并运行该工具时,它不会保留数据,并进一步导致其他默认值不显示。当我取消绑定(bind)并重新编译时,其他一切都会回来。

将 NSPredicatedEditor 数据存储为用户首选项的最佳方式是什么?

谢谢。

最佳答案

每当 NSPredicateEditor 的 UI 发生更改时,这些更改都会立即反射(reflect)在编辑器的 objectValue 中(即,其表示的 NSPredicate)。因此,您可以获取该谓词并使用 NSKeyedArchiver 对其进行存档。这将有效地将谓词转换为 NSData 对象,该对象可以保存到 NSUserDefaults 中。

要读回它,只需获取 NSData 对象,通过 NSKeyedUnarchiver 运行它,然后在谓词编辑器上 setObjectValue: 即可。

可能可以通过绑定(bind)来完成此任务,尽管我从未尝试过。 You can bind the value of an NSPredicateEditor到提供 NSPredicate (或 NSData 形式的 NSPredicate)的东西。您可能还需要指定值转换器是 NSKeyedUnarchiveFromData 转换器。

关于objective-c - 将 NSPredicateEditor 绑定(bind)到共享用户默认 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214395/

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