2012-03-12 22 views
20

Deseo saber cómo puedo crear widgets/controles personalizados en Cocoa. No es un tutorial completo, sino una guía sobre qué buscar. Estoy confundido por vistas personalizadas, Core Animation, etc. Me siento perdido.Controles/widgets personalizados Cocoa OSX

Veo una gran cantidad de controles que buscan fresco, como en la aplicación Reeder, o gorrión etc. Por ejemplo:

Sparrow

El lado izquierdo es un menú plegable que incluye animaciones, etc. ¿Cómo puedo lograr ¿algo parecido? Pensé en usar un WebView + HTML + JavaScript, pero eso no parece una solución muy optimizada.

+1

Esta es una pregunta muy amplia - es posible que desee editarlo para hacerla más específica. Las preguntas específicas tienden a funcionar mejor en SO: las vagas probablemente se cierren como "no constructivas" o "no son preguntas reales". – Caleb

Respuesta

24

Los controles son vistas, por lo que si las vistas personalizadas lo confunden, deberá obtenerlo antes de pasar a controles personalizados. Aunque realmente debería leer el View Programming Guide completo, la sección llamada Creating a Custom View lo ayudará a comenzar a crear sus propias vistas. Intente crear una vista simple que dibuje un círculo, por ejemplo, o la hora.

Cuando tenga las vistas resueltas, pase a controles personalizados. La mayoría de los controles funcionan aproximadamente de la misma manera. El usuario los toca, y el control responde: a) rastreando la entrada del usuario, b) cambiando su valor, c) enviando su mensaje de acción a su objetivo, yd) dando al usuario algunos comentarios redibujándose a sí mismo. Para comenzar, primero asegúrese de saber cómo usar los controles. Leer Control and Cell Programming Topics debería ayudar, y la sección titulada Subclassing NSControl cubre (obviamente) la creación de sus propias subclases.

El ejemplo que proporcionaste es claramente Apple's Mail.app. La vista en el lado izquierdo de la ventana podría ser una instancia de NSOutlineView, o podría ser una clase personalizada. De cualquier manera, NSOutlineView sería un buen punto de partida si desea duplicar esa funcionalidad. NSOutlineView es una subclase de NSTableView, que a su vez es una subclase de NSControl, que a su vez es una subclase de NSView. Lea Outline View Programming Topics para obtener ayuda sobre cómo empezar: las tablas y los contornos son extremadamente útiles, pero también más complicados de usar que los controles básicos, como botones y campos de texto.

+1

Gracias Caleb, parece un buen punto de partida. –

+2

Este es un buen envío de requisitos previos que generalmente no son claros en el cacao. Bien hecho – uchuugaka

4

Sé que es solo una parte de la interfaz de usuario, pero recientemente he codificado algo similar a la barra lateral. Si mira el código fuente, puede ayudarlo a aprender a usar células y controles personalizados.

Puede encontrar esta información en Github:
https://github.com/iluuu1994/ITSidebar

Cuestiones relacionadas