使用日期过滤NSSCrollView

时间:2011-07-06 14:23:07

标签: objective-c cocoa nstableview nsarraycontroller nsscrollview

我在使用日期列过滤NSScrollViews内容时遇到问题。

我有一个实体,它包含多个属性,例如名称 AccountNumber DateOfPurchase 等。此实体绑定到NSArrayController的。

另外,我有一个NSScrollView,它的列被绑定到这个NSArrayController。

问题是我想过滤这个NSScrollView记录,只显示它们受2个日期间隔限制的记录。 (如:2010年10月2日之后和2011年5月5日之前)

我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

使用FilterPredicate解决问题:

    NSDate *afterDate=[balanceDateAfter objectValue];
    NSDate *beforeDate=[balanceDateBefore  objectValue];
    NSComparisonResult duration=[beforeDate timeIntervalSinceDate:afterDate];

    duration=duration/3600;
    duration=duration/24;

    NSLog(@"After Date is : %@",afterDate);
    NSLog(@"Before Date is : %@",beforeDate);

    [checkInBalanceArray setFilterPredicate:[NSPredicate predicateWithFormat:@"(checkDate >= %@) AND (checkDate <= %@)", afterDate, beforeDate]];

    [checkOutBalanceArray setFilterPredicate:[NSPredicate predicateWithFormat:@"(checkDate >= %@) AND (checkDate <= %@)", afterDate, beforeDate]];