Yo Puedes pensar en un control como representante de la célula o "agente". El control es NSView
, lo que significa dos cosas importantes en estas circunstancias. Primero, que representa un área de una ventana a dibujar. Segundo, que acepta la interacción del usuario.
El control no hace mucho por sí mismo. La celda es lo que hace todo el trabajo; observe, por ejemplo, que las celdas pueden dibujarse en un marco determinado. Esta es la responsabilidad de una vista, pero el control difiere eso a la celda, simplemente proporcionando un área para el dibujo.
Del mismo modo, cuando un usuario hace clic en un control, el control recibe el evento y se da cuenta de lo que significa, pero el trabajo de realizar una acción en respuesta al evento se transfiere a la celda.
Si observa los documentos para varios pares control/celda (NSButton
y NSButtonCell
siendo uno de esos pares), verá mencionar los métodos de "cobertura". Esto significa que el control tiene métodos con los mismos nombres que su celda homóloga, que simplemente llama a la celda. Esa es la fuente de la duplicación que mencionaste. Cuando desee utilizar uno de estos métodos, llámelo al control; como la cara pública del par, lo más probable es que simplemente pregunte a la célula de todos modos.
La mejor descripción proporcionada por Apple de la interacción es "How Controls and Cells Interact" en la guía Temas de control y celda.
En el sentido de un agente que tiene un agente que procure conciertos.
esto no es estrictamente cierto de todos los puntos de vista; en realidad es una característica de NSResponder
de la cual NSView
hereda.
Veo que es lo mismo que UIView y CALayer? – onmyway133