Comment puis-je mettre en œuvre une vue basée sur la vignette-pour la sélection de l'utilisateur à Cocoa?

StackOverflow https://stackoverflow.com/questions/1849906

Question

J'ai ce que je pensais était un besoin assez simple mais je ne suis pas sûr de savoir comment s'y prendre pour la mettre en œuvre.

A différents points dans mon interface, l'utilisateur est invité à faire une sélection de quelque chose plutôt visuel (comme le choix d'une mise en page d'une page ou une option de couleur.) Ces sélections sont faites à partir d'un ensemble prédéfini d'options. Normalement vous utilisez un NSPopUpButton, ou peut-être un NSTableView, mais je voudrais l'utilisateur de voir les vignettes de chaque option de sélection. Ces vignettes doivent être d'une taille décente, aussi - au moins 100x100 pixels. Chaque vignette doit également être accompagnée d'une étiquette de texte. Une seule sélection est autorisée à la fois.

Apple met en œuvre quelque chose plutôt comme ceci dans iWeb:

iweb http://img187.imageshack.us/img187/5744/iweb. jpg

Bien sûr, vous avez l'habitude de voir quelque chose comme ceci avec de petites icônes:

Je pense qu'une NSCollectionView est l'endroit pour commencer, mais je ne l'ai jamais vu cela utilisé dans des scénarios beaucoup plus complexes (par exemple: afficher le contenu d'un répertoire, glisser-déposer, etc. appui) Par conséquent, la plupart du code que j'ai trouvé est assez compliqué.

Y at-il une solution plus simple pour remplir ce point de vue avec des données prédéfinies statiques, et juste permettre une sélection simple? En d'autres termes, je suis à la recherche de la fonctionnalité d'un bouton pop-up, mais une interface utilisateur.

Mise à jour: solution

je IKImageBrowser, comme l'a suggéré. Cette tutoriel a été très utile. Dans IB: Je viens de faire un IKImageBrowser dans mon interface, il Enveloppé dans une vue de défilement, et en a fait la source de données de l'objet du navigateur. Dans le code: mis en œuvre le protocole de source de données dans mon contrôleur comme le tutoriel EXPLIQUE, mis allowsMultipleSelection et allowsEmptySelection NO, a créé un objet image personnalisée en utilisant la représentation d'image URL exactement comme cela est expliqué dans le tutoriel

.

Ensuite, pour obtenir la sélection, j'ai écrit la méthode suivante pour être déclenché lorsque l'utilisateur clique sur le bouton « OK »:

NSIndexSet *retval = [imageBrowser selectionIndexes];
NSInteger i = [retval firstIndex];  //the index of the selection. Corresponds to index in my array data source
NSString* path = [[styleViewData objectAtIndex:i] imageRepresentation]; //path to selected image, if you need it

Le tutoriel est très utile -. Simplement ignorer les choses sur l'ajout d'images et des curseurs de zoom et tels

Était-ce utile?

La solution

Vous voulez IKImageBrowserView.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top