想要从我的arrangeObjects NSArrayController中过滤掉Windows管理员共享

时间:2010-12-15 21:24:15

标签: cocoa binding nsarraycontroller

我在NSArrayController中设置了所有内容,让我的文件所有者representObject成为我拥有的tableview的数据源。

在我在界面构建器中的绑定中,我想使用过滤器谓词来过滤出arraycontroller中名称中包含$的任何项目....具体以$实际结尾,因为这是windows admin共享的样子当我收到我正在收集的FTP共享数组时。

我已将过滤谓词设置为: 控制器键:选择 modelKeyPath:directorsAndFiles

价值变形金刚:嗯,我不知道?你可以帮忙吗?

通缉: 消除任何包含$字符的项目

谢谢!

2 个答案:

答案 0 :(得分:0)

当您“设置”过滤器谓词时,您正在做的是绑定它 - 您需要将键路径设置为您设置为控制器键的任何对象的有效属性。因此,您应该将控制器密钥设置为某个控制器对象,以及某些属性的关键路径,可能命名为windowsPredicate

然后,在您绑定的任何对象中,添加一个返回NSPredicate的windowsPredicate属性。您将使用以下内容创建NSPredicate

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name not like '*$'"];

(*表示“任何内容”,因此大致翻译为“不以$结尾”。)查看NSPredicate文档以获取更多信息。祝你好运!

答案 1 :(得分:0)

首先,在这种情况下,您不需要值变换器。值变换器会更改值的显示。例如,它可能会使数字2显示为“€2,00” - 或者您可能喜欢的任何内容。

其次,您正在寻找的谓词语法是“ENDSWITH”,如:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name not ENDSWITH '$'"];