我在这里有一个应用程序需要从外部文件中读取一堆数据,并在Cocoa用户界面中将其显示为NSPopUpButton
。这里的问题是,正在读入的数据需要有一个标志,表明它是否被视为“隐藏”。
如果数据被隐藏,则需要将NSPopUpButton
作为NSMenuItem
添加到hidden
,但需要将YES
标记设置为NSPopUpButton
通常不会出现在NSMenuItem
菜单中。如果用户在键盘上按下“魔术键”(通常是ALT,在这种情况下),则需要取消隐藏这些隐藏的对象。如果用户放开ALT键,则需要自动重新隐藏它们,除了可能已被选择的那个 - 如果选择了另一个NSArrayController
,它将被隐藏。
实际上,我有点时间搞清楚这一点。
我想知道是否有使用NSPopUpButton
和NSMenuItem
这样做的直接方法,但到目前为止我还没有找到任何类似解决方案的东西 - 而不是当它到来时管理{{1}}对象的隐藏属性。
有谁知道如何使用Cocoa Bindings实现这一目标?
答案 0 :(得分:1)
您可以将弹出窗口连接到阵列控制器并更改过滤器谓词。从MVC设计的角度来看,你不会使用像“hidden”这样的属性,这是一个视图特征,但可能是“高级”。通常,将阵列控制器上的过滤谓词设置为“advanced = no”。然后,当用户拥有首选修饰符时,删除谓词。弹出窗口将自动更新。数组控制器应绑定到另一个对象(在数据模型中)的数组属性。弹出窗口应绑定到阵列控制器上的arrangeObjects。