cocoa – NSArrayController:如何以编程方式清除选择?

cocoa – NSArrayController:如何以编程方式清除选择?,第1张

概述非常简单的问题让我发疯:以编程方式清除NSArrayController选择的正确方法是什么? 我正在使用以下组件设计视图: > NSArrayController * controller1:绑定到一个对象数组 > NSPopUpView view1:绑定到controller1.arrangedObjects的内容;绑定到controller1.selection的值;选中“插入空占位符” > 非常简单的问题让我发疯:以编程方式清除NSArrayController选择的正确方法是什么?

我正在使用以下组件设计视图:

> 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:如何以编程方式清除选择?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1006066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存