¿Cómo puedo poner en práctica una visión basada en la miniatura para ver la selección del usuario en Cocoa?

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

Pregunta

Tengo lo que pensaba que era una necesidad bastante simple, pero no estoy seguro de cómo ir sobre la implementación de la misma.

En varios momentos de mi interfaz, se le pide al usuario que realice una selección de algo más visual (como la elección de un diseño de una página o una opción de color.) Estas selecciones se hacen de un conjunto predefinido de opciones. Normalmente tendrá que utilizar un NSPopUpButton, o tal vez una NSTableView, pero me gustaría al usuario ver imágenes en miniatura de cada opción de selección. Estas miniaturas debe ser de un tamaño decente, también - al menos 100x100 píxeles. Cada miniatura también debe ir acompañado de una etiqueta de texto. Sólo se permite una selección a la vez.

Apple implementa algo bastante parecido en iWeb:

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

Por supuesto, que estamos acostumbrados a ver algo como esto con pequeños iconos:

Xcode

Estoy pensando que un NSCollectionView es el lugar para comenzar, pero sólo he visto nunca este utiliza en escenarios mucho más complicadas (por ejemplo: mostrar el contenido de un directorio, el apoyo de arrastrar y soltar, etc.) Por lo tanto, la mayor parte del código que he encontrado es bastante complicado.

¿Hay una solución más simple para poblar con este punto de vista, los datos predefinidos estáticos y simplemente permitir una selección sencilla? En otras palabras, estoy buscando la funcionalidad de un botón emergente, pero con una interfaz de usuario diferente.

Actualización: Solución

He utilizado IKImageBrowser, como se sugiere. Este tutorial fue muy útil. En IB: acabo de hacer un IKImageBrowser en mi interfaz, lo envolvió en una vista de desplazamiento, y la convirtió en la fuente de datos del objeto navegador. En código: implementado el protocolo de fuente de datos en mi controlador como el tutorial explica, establecer allowsMultipleSelection y allowsEmptySelection en NO, creado un objeto de imagen personalizada mediante la representación de la imagen URL exactamente como se explica en el tutorial

.

A continuación, para obtener la selección, me escribió el siguiente método que se activará cuando el usuario hace clic en el botón "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

El tutorial es muy útil -. Simplemente ignorar la materia sobre la adición de imágenes y deslizadores de zoom y tal

¿Fue útil?

Solución

¿Quieres IKImageBrowserView.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top