我正在使用以下组件设计视图:
> NSArrayController * controller1:绑定到一个对象数组
> NSPopUpVIEw vIEw1:绑定到controller1.arrangedobjects的内容;绑定到controller1.selection的值;选中“插入空占位符”
> NSArrayController * controller2:绑定到存储在controller1.selection中的数组
> NSPopupVIEw vIEw2:绑定到controller2.arrangedobjects的内容;绑定到controller2.selection的值;选中“插入空占位符”
最初,vIEw1的内容已填充; controller1和controller2具有零选择值;和vIEw1和vIEw2显示空占位符.选择controller1会导致controller1的选择发生变化,并且vIEw2的内容将被填充.都好.
我想实现一个Clear按钮,清除controller1的选择,由于绑定,还应该清除controller2的选择并将vIEw1和vIEw2重置为null占位符.对于我的生活,我无法弄清楚这个非常简单的功能的正确代码.更改controller1的选择无法更新vIEw1中显示的值.更糟糕的是,以编程方式更改控制器1的选择会导致控制器2中发生奇怪的事情:在vIEw1中进一步选择值不会对vIEw2产生任何影响.
我试过的事情:
>使用[NSArray new]调用controller1的SetSelectedobjects方法.
>使用null调用controller1的SetSelectedobjects方法.
>使用NSNotFound调用controller1的SetSelectedindex方法.
>使用controller1的Selectedindex属性调用controller1的RemoveSelectedindex方法.
>查看Cocoa NSArrayController文档,了解清除选择值的任何类方法或建议.什么都没有 – 甚至没有提到这是可取的,更不用说如何实现它.
有任何想法吗?谢谢…
解决方法 根据 Apples Developer documentation,这可以使用setSelectionIndexes完成:To deselect all indexes,pass an empty index set.
Objective-C的:
[arrayController setSelectionIndexes:[NSIndexSet indexSet]];
迅速:
arrayController.setSelectionIndexes(NSIndexSet())
总结以上是内存溢出为你收集整理的cocoa – NSArrayController:如何以编程方式清除选择?全部内容,希望文章能够帮你解决cocoa – NSArrayController:如何以编程方式清除选择?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)