在NSTableView中过滤NSPopUpButtonCell中的数据

时间:2009-07-19 08:42:57

标签: cocoa

我有一个NSTable,其中包含一列NSPopUpButtonCells。我想根据表中另一列的内容过滤NSPopUpButtonCell。这感觉就像应该有一个相当简单的解决方案,但是在我看来,我似乎想出的解决方案非常复杂。我最大的问题似乎是当应用程序运行并且我点击NSPopUpButtonCell时,我无法找到在显示菜单之前将激活的内容,然后启动过滤器。我尝试过像tableViewSelectionIsChanging这样的微不足道的东西:但是在PopUpButton列表激活后它们似乎都被激活了。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

原来这个问题有一个简单的解决方案。 我使用NSArrayController来控制表中的行。每行都是InputCell类的对象。我添加了一个将NSArray返回到InputCell类的方法,并且此方法使用[self valueForKey:]根据单元格的过滤条件创建不同的数组。然后,我可以使用绑定通过NSArrayController将NSPopUpButtonCell的内容绑定到数组。

答案 1 :(得分:0)

tableView:willDisplayCell:委托方法中,您可以制作用于单元格的菜单的副本,对其进行适当过滤或填充,然后将其设置为单元格的菜单。这应该达到预期的效果。