Soy nuevo en Cocoa y estoy buscando un pequeño consejo para una aplicación de experimentados Cocoa-ers.Consejos para una aplicación de dibujo de cacao
Estoy construyendo una aplicación básica de estilo OmniGraffle donde los objetos se dibujan/arrastran sobre un lienzo. Una vez que los objetos están en el lienzo, pueden seleccionarse para modificar sus propiedades (color de relleno, color/ancho de trazo, etc.), cambiar su tamaño, moverse a una nueva posición, etc.
Para calentarse, He escrito una aplicación de dibujo básico que crea objetos (círculos, rectángulos, etc.) dibujados con el mouse en un NSView
personalizado, agrega los objetos a una colección NSArray
y muestra el contenido de la colección en la vista. Podría continuar en este sentido, pero voy a tener que agregar soporte para detectar la selección de objetos, resolver z-indexing, focus highlighting, arrastrar manejadores, etc. con todo el renderizado asociado. Además, renderizar cada objeto en cada ciclo parece terriblemente dispendioso.
Parece que un mejor enfoque sería colocar objetos de vista livianos en un lienzo que pudieran detectar los eventos del mouse sobre ellos mismos, dibujar ellos mismos y sus anillos de enfoque, y así sucesivamente. Sin embargo, aunque NSView
parece un objeto con estas propiedades, veo mucha charla en la web sobre que es un componente pesado con mucho equipaje. He tropezado con NSCell
y he leído sobre ellos, pero no estoy seguro de si son la alternativa correcta.
¿Alguna sugerencia? Si puedes empujarme en la dirección correcta, lo agradecería muchísimo.
Definitivamente desaconsejaría usar 'NSCell'. Incluso 'NSTableView' se ha alejado de él en su última iteración. 'NSCell' no es divertido para trabajar. –
También le recomiendo encarecidamente que mire el ejemplo de Sketch (creo que el actual se llama "Sketch + Accesibilidad" si busca en los documentos) si aún no lo ha hecho. Hay muchas buenas ideas ahí. –