Okay, ich habe einen ArrayController, der eine IKImageBrowserView mit Bildern versorgt.
Zusätzlich hat jedes Bild einen Status, der einen Wert von 0-2 annehmen kann.
Ich möchte den Inhalt der IKImageBrowserView nun basierend auf den jeweiligen Status-Werten der Bilder filtern.
Was ich gerne hätte, ist quasi eine Maske mit den Optionen:
- Alle Elemente anzeigen
- Nur Elemente mit Status == 0 anzeigen
- Nur Elemente mit Status == 1 anzeigen
- Nur Elemente mit Status == 2 anzeigen
- Nur Elemente mit Status != 0 anzeigen
- Nur Elemente mit Status != 1 anzeigen
- Nur Elemente mit Status != 2 anzeigen
Passend hierfür habe ich bereits die jeweiligen Predicates, sowie einen NSPopupButton mit jeweiligen Bindings.
wenn ich nun [arrayController setFilterPredicate:self.predicate]; ausführe, so wird die View auch entsprechend gefiltert.
Sobald ich jedoch von einem beliebigen Element den Status ändere, hebt der ArrayController munter seine Filterung auf. WTF?
Gleiches gilt für das Hinzufügen von Elementen. (wobei dieses sich ja mit "setClearsFilterPredicateOnInsertion:NO" ausschalten lässt, auch wenn's dann leider Exceptions spuckt)
Jegliche Filterung ist weg. Wenn ich jedoch [arrayController filterPredicate] abrufe, so spuckt er den korrekten (sprich gewünschten) NSPredicate aus.
Nur was bringt's mir, wenn er scheinbar ignoriert wird?
Was muss ich tun, damit mein NSArrayController nicht nach jeder Änderung eines gelisteten
(oder dem Einfügen eines neuen) Elements seinen NSPredicate vergisst (was dessen Verwendung angeht zumindest)?
Zusätzlich hat jedes Bild einen Status, der einen Wert von 0-2 annehmen kann.
Ich möchte den Inhalt der IKImageBrowserView nun basierend auf den jeweiligen Status-Werten der Bilder filtern.
Was ich gerne hätte, ist quasi eine Maske mit den Optionen:
- Alle Elemente anzeigen
- Nur Elemente mit Status == 0 anzeigen
- Nur Elemente mit Status == 1 anzeigen
- Nur Elemente mit Status == 2 anzeigen
- Nur Elemente mit Status != 0 anzeigen
- Nur Elemente mit Status != 1 anzeigen
- Nur Elemente mit Status != 2 anzeigen
Passend hierfür habe ich bereits die jeweiligen Predicates, sowie einen NSPopupButton mit jeweiligen Bindings.
wenn ich nun [arrayController setFilterPredicate:self.predicate]; ausführe, so wird die View auch entsprechend gefiltert.
Sobald ich jedoch von einem beliebigen Element den Status ändere, hebt der ArrayController munter seine Filterung auf. WTF?
Gleiches gilt für das Hinzufügen von Elementen. (wobei dieses sich ja mit "setClearsFilterPredicateOnInsertion:NO" ausschalten lässt, auch wenn's dann leider Exceptions spuckt)
Jegliche Filterung ist weg. Wenn ich jedoch [arrayController filterPredicate] abrufe, so spuckt er den korrekten (sprich gewünschten) NSPredicate aus.
Nur was bringt's mir, wenn er scheinbar ignoriert wird?
Was muss ich tun, damit mein NSArrayController nicht nach jeder Änderung eines gelisteten
(oder dem Einfügen eines neuen) Elements seinen NSPredicate vergisst (was dessen Verwendung angeht zumindest)?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Da_Vinci ()