Je pense que le titre dit à peu près tout ... Je cherche à implémenter une interface similaire à la barre latérale OS X standard utilisée dans tous les programmes mentionnés ci-dessus, et je me demande si quelqu'un a des idées quant à la la manière la plus simple de le faire, à savoir sur la vue à utiliser pour le volet de sélection gauche. Vraiment, je ne pense pas que j'ai besoin de la composante hiérarchique comme dans les applications Apple, j'ai juste besoin d'une liste de choix bien choisis qui déterminent ce qui est montré dans le volet de droite. Le début évident est une vue de mise en page split vertical, mais au-delà je ne sais pas trop où aller. Une vue de collection avec une seule colonne ou quelque chose comme ça?Comment pourrait-on implémenter une barre latérale similaire à Mail/iTunes/Finder/etc dans Cocoa/IB?
Comment pourrait-on implémenter une barre latérale similaire à Mail/iTunes/Finder/etc dans Cocoa/IB?
Répondre
J'ai fait quelques applications qui utilisent une configuration similaire.
J'utilise généralement un NSSplitView, avec une seule colonne NSTableView dans le volet de gauche. N'oubliez pas de désactiver les en-têtes et de les afficher en mode "Source View".
Si vous voulez les triangles d'affichage, alors vous voudrez utiliser NSOutlineView au lieu de NSTableView, mais au moins pour la première fois, je m'en tiendrai à un simple NSTableView.
Un motif que j'utilise également est de rendre NSTableView légèrement plus court que NSSplitView, et avoir des boutons en bas (ajouter, supprimer, etc.). J'ai généralement construit le programme autour des données de base, il est donc facile de les connecter à des méthodes pour créer/supprimer des objets, puis lier NSTableView au tableau d'objets.
Le soutien direct pour ce genre de chose a été ajouté dans Leopard. C'est ce qu'on appelle une «liste de sources».
Veuillez voir le AppKit release notes. Recherchez NSTableViewSelectionHighlightStyleSourceList dans le document. Vous pouvez également faire glisser une vue de table et sélectionner Highlight: Source List
dans Interface Builder.
Vous devrez également implémenter la méthode outlineView: isGroupItem: delegate pour retourner YES pour les lignes qui ont les titres en-têtes majuscules. –
Les notes de version d'AppKit que vous pouvez trouver maintenant [ici] (http://developer.apple.com/library/mac/#releasenotes/Cocoa/AppKitOlderNotes.html) – Stephan
c'est tellement éclairant @matthew schinckel! merci – swdev