问题是:数组的内容会发生变化.如果用户对应用程序进行了一些调整,我会删除NSMuteableArray中的所有项目,并用新的和不同的项目填充它.
但是NSMutableArray< - >的绑定NSArrayController< - > NSComboBox不刷新.
无论我是否从Array中删除所有对象,ComboBox仍然显示相同的项目.
这有什么不对?我的方法是错误的还是我只需要告诉绑定刷新自己?我没有发现如何做到这一点.
解决方法 你可能“编辑控制器后面的数组”,这颠覆了KVO机制.你说:
I have a NSMutableArray bound to a NSArrayController.
怎么样?阵列在哪里?在一个文档中,可通过符合KVC / KVO的-myArray / -setMyArray访问:访问器集?
我敢打赌你直接告诉“myArray”ivar -removeAllObjects,对吧?这些KVC / KVO访问器如何“知道”阵列发生了变化?
答案是,他们没有.如果您真的要替换整个数组,那么您需要将您的文档(或拥有该数组的任何人)告诉-setMyArray:到一个全新的数组.这将触发正确的KVO呼叫.
……但是,你真的不需要一个可变数组,对吗?如果您只想替换数组中的单个项,则需要使用索引访问器:
(文档 – 请参阅“To-Many PropertIEs的集合访问器模式”部分)
http://tinyurl.com/yb2zkr5
以上是内存溢出为你收集整理的刷新Cocoa-Binding – NSArrayController – ComboBox全部内容,希望文章能够帮你解决刷新Cocoa-Binding – NSArrayController – ComboBox所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)