Je peux créer facilement un NSPredicate à l'aide d'un NSPredicateEditor (une sous-classe de NSRuleEditor). Ce que j'aimerais savoir, c'est ceci:Modification d'un NSPredicate à l'aide de NSPredicateEditor
Comment puis-je prendre un NSPredicate existant (créé par l'éditeur) et le recharger dans l'éditeur pour pouvoir le modifier?
EDIT: J'ai essayé @ la suggestion de John d'utiliser setObjectValue :, mais cela n'a pas vraiment fonctionné. Laissez-moi vous expliquer un peu plus ma configuration:
J'ai une application de cacao basée sur un document, et la fenêtre de document a juste un NSPredicateEditor dessus. Dans la méthode dataOfType:error:
, je:
NSPredicate * pred = [predicateEditor objectValue];
NSData * predicateData = [NSKeyedArchiver archivedDataWithRootObject:pred];
return predicateData;
Dans la méthode readFromData:ofType:error:
, j'ai:
NSPredicate * pred = [NSKeyedUnarchiver unarchiveObjectWithData:data];
[predicateEditor setObjectValue:pred];
return (pred != nil);
J'ai vérifié que le prédicat est correctement archivé et se désarchivée, mais après l'ouverture d'un prédicat sauvé , le prédicat n'est pas chargé dans predicateEditor. (Oui, predicateEditor est connecté en tant qu'IBOutlet)
Utilisez-vous des modèles personnalisés? –
@John non Je viens de glisser et de déposer un PredicateEditor de la bibliothèque de l'IB. –