2009-11-03 3 views
0

J'ai une NSTableView qui est effectuée en utilisant les liaisons IB et de données typiques. Ça marche bien.Récupère les données par plage de dates à l'aide d'Interface Builder

Cependant, j'ai besoin de mettre dans un contrôle segmenté pour indiquer la plage de dates. Par exemple, si l'utilisateur clique sur le bouton de contrôle segmenté "Dernière année", la table ne doit afficher que les enregistrements de l'année dernière. J'ai regardé les options de liaison de données dans IB pour le NSArrayController, mais je n'ai aucune idée de comment faire cela.

Quelqu'un peut-il me diriger dans la bonne direction s'il vous plaît?

* Mise à jour:

L'application je travaille a 3 boutons SegmentedControl - « Cette année », « année dernière », « Total », et un tableview qui affiche les enregistrements associés à la sélection de l'année l'utilisateur sélectionné. La sélection de "Cette année" rechargera la vue de table avec les enregistrements pour l'année en cours et sélectionner "Dernière année" rechargera la table pour afficher les enregistrements de l'année dernière.

Répondre

2

Vous souhaitez définir un prédicat de filtre. Votre bouton "dernière année" devrait définir le "filtre de prédicat" du contrôleur de réseau sur celui qui décrit le filtre de plage de dates approprié.

Predicates Programming Guide

- [NSArrayController setFilterPredicate:] Source

+0

Merci, mais ce n'est pas clair pour moi comment je peux changer dynamiquement le filtre sous-jacente de l'IB. Peut-être que je ne peux pas et c'est le point. –

+0

C'est la manière la plus directe. Comme on le dit souvent à propos de Bindings sur la liste cocoa-dev: "Parfois, il suffit d'écrire du code." :-) Cela dépend vraiment de ce que vous essayez de faire exactement. Si vous décrivez plus en détail comment ce contrôle segmenté est censé fonctionner avec votre application (et comment les choses sont liées, où le modèle est contrôlé), je peux être plus précis. :-) –

+0

Merci de m'avoir aidé, je viens d'ajouter plus de détails sur l'application Je travaille sur le problème avec le filtrage. Je n'ai pas peur du code mais je suis juste sûr de savoir comment faire. :-) –

0

si vous avez un champ dans votre magasin appelé est isChecked qui ont le même type de données bool, vous pouvez le faire en IB.

isChecked == 0

Questions connexes