让我发疯的非常简单的问题:以编程方式清除 NSArrayController 选择的正确方法是什么?
我正在设计一个包含以下组件的视图:
- NSArrayController *controller1:绑定到对象数组
- NSPopUpView view1:绑定到controller1.arrangedObjects的内容;绑定到 controller1.selection 的值;选择“插入空占位符”
- NSArrayController *controller2:绑定到存储在controller1.selection中的数组
- NSPopupView view2:绑定到controller2.arrangedObjects的内容;绑定到 controller2.selection 的值;选择“插入空占位符”
最初,view1 的内容被填充;controller1 和 controller2 的选择值为零;并且 view1 和 view2 显示空占位符。选择控制器 1 会导致控制器 1 的选择发生变化并填充视图 2 的内容。都好。
我想实现一个清除按钮来清除控制器 1 的选择,由于绑定,它还应该清除控制器 2 的选择并将 view1 和 view2 重置为空占位符。对于我的生活,我无法为这个非常简单的功能找出正确的代码。更改控制器 1 的选择无法更新 view1 中显示的值。更糟糕的是,以编程方式更改控制器 1 的选择会导致控制器 2 中发生奇怪的事情:视图 1 中值的进一步选择无法对视图 2 产生任何影响。
我尝试过的事情:
使用 [NSArray new] 调用 controller1 的 SetSelectedObjects 方法。
使用 null 调用 controller1 的 SetSelectedObjects 方法。
使用 NSNotFound 调用 controller1 的 SetSelectedIndex 方法。
使用 controller1 的 SelectedIndex 属性调用 controller1 的 RemoveSelectedIndex 方法。
在 Cocoa NSArrayController 文档中查找任何用于清除选择值的类方法或建议。那里什么都没有——甚至没有提到这是可取的,更不用说如何实现它了。
有任何想法吗?谢谢...