Ich habe einen statischen Filter zu aktivieren/deaktivieren für einen NSArrayController basierend darauf, ob ein Kontrollkästchen aktiviert ist. Im Moment habe ich das Kontrollkästchen Wert dieses gebunden:Aktivieren NSArrayController Prädikat basierend auf Kontrollkästchen
private dynamic var filterPending: NSNumber! {
willSet {
willChangeValueForKey("filterPredicate")
}
didSet {
didChangeValueForKey("filterPredicate")
}
}
und dann gebunden ich den Filter des NSArrayController dazu:
private dynamic var filterPredicate: NSPredicate? {
guard let filter = filterPending?.boolValue where filter == true else { return nil }
return NSPredicate(format: "pending > 0")
}
, die richtig zu funktionieren scheint, fühlt sich aber wie vielleicht Ich vermisse einen einfacheren Weg, dies zu tun?
In ObjcC wäre es 'sein + (NSSet *) keyPathsForValuesAffectingFilterPredicate {return [NSSet setWithObjects: @ "filterPending", nil]; } ', keine Ahnung, wie das zu swift übersetzt wird. –
könnte ich das auch tun, anstelle des filterPending. Ich dachte, es könnte einen leichteren Weg geben, als ein Ding zu sagen, dass sich das Prädikat ändern muss und ein anderes für das Prädikat. Grundsätzlich gibt es einen saubereren Weg, dies zu tun, ohne dass die beiden Elemente im Code ausgeführt werden. – Gargoyle