4

我这里有一个应用程序,它需要从外部文件中读取一堆数据并将其显示为NSPopUpButtonCocoa 用户界面中的一个。这里要注意的是,正在读入的数据需要有一个标志来说明它是否被认为是“隐藏的”。

如果数据被隐藏,则需要将其添加到 中NSPopUpButtonNSMenuItemhidden需要将标志设置为YES,使其通常不会出现在NSPopUpButton菜单中。如果用户按住键盘上的“魔术键”(通常是 ALT,在这种情况下),则需要取消隐藏这些隐藏的对象。如果用户放开 ALT 键,那么他们需要自动重新隐藏,除了可能已经选择的那个——如果NSMenuItem选择了另一个,它将被隐藏。

实际上,我有点花时间弄清楚这一点。

我想知道是否有一种直接的方法可以使用NSArrayController和来做到这一点NSPopUpButton,但到目前为止,我还没有找到任何类似于解决方案的东西——在管理NSMenuItem对象的隐藏属性时不是这样。

有谁知道如何使用 Cocoa Bindings 来实现这一点?

4

1 回答 1

1

您可以将弹出窗口连接到数组控制器并更改过滤谓词。从 MVC 设计的角度来看,您不会使用像“隐藏”这样的属性,这是一种视图特性,但可能是“高级”。通常,将阵列控制器上的过滤谓词设置为“advanced = no”。然后当用户持有您喜欢的修饰符时,删除谓词。弹出窗口将自动更新。数组控制器应该绑定到另一个对象(在您的数据模型中)的数组属性。弹出窗口应绑定到数组控制器上的排列对象。

于 2011-11-29T03:19:01.633 回答