我的应用程序中有一个检查器窗格,其中包含一堆控件。这些控件通过NSArrayController
. 根据选择的对象类型,我将显示一组不同的检查器(就像 IB 的工作方式一样)。检查器控制器观察阵列控制器的selection
,以便在选择更改时加载所需的检查器集。
问题是旧的检查员显然没有被删除。即使检查器控制器没有对它们进行强引用并且它们已从其超级视图中删除,它们仍然会留下并将绑定错误记录到控制台:
[<Circle 0x102107df0> valueForUndefinedKey:]: this class is not key value
coding-compliant for the key width.
我的猜测是,NSArrayController
由于绑定,它对控件有很强的引用。这可能吗?在从超级视图中删除控件之前,我是否必须手动删除绑定?如何正确实现这样的检查器窗格?
编辑:文档说
接收者和观察者都不会被保留。
所以我想在删除控件时应该自动删除绑定,不是吗?