【发布时间】:2015-08-22 14:18:19
【问题描述】:
我有两个 UI 组件,它们的值通过用户默认值同步。第一个本质上是一个输入字段,另一个是菜单项。当输入字段的值发生变化时,菜单项的键等效项通过 Cocoa 绑定发生变化:
Input Field -> NSUserDefaultsController -> User Defaults
User Defaults -> NSUserDefaultsController -> Menu Item
这对除nil 值之外的所有内容都非常有效。由于某种原因,我无法将实际的 nil 值存储在用户默认值中,而是使用空字典。在读取值的另一端,我有一个转换器,可以将空字典“膨胀”成nil 值。
现在,当我在输入字段中输入一个非零值时,它会通过用户默认值并正确传播到菜单项。当我输入一个“空”值时,一个空字典会正确存储在用户默认值中,但菜单项的绑定值不会改变。
我做错了什么?
【问题讨论】:
标签: objective-c macos cocoa cocoa-bindings