NSButtonCell dentro de NSCell personalizado

en mi aplicación de cacao, necesito un NSCell personalizado para un NSTableView. EstaLa subclase NSCell contiene un NSButtonCell personalizado para manejar un clic (y dos o tres NSTextFieldCells para contenido textual). Encontrarás un ejemplo simplificado de mi código a continuación.

@implementation TheCustomCell

- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
   // various NSTextFieldCells
   NSTextFieldCell *titleCell = [[NSTextFieldCell alloc] init];
   ....
   // my custom NSButtonCell
   MyButtonCell *warningCell = [[MyButtonCell alloc] init];
   [warningCell setTarget:self];
   [warningCell setAction:@selector(testButton:)];
   [warningCell drawWithFrame:buttonRect inView:controlView];
}

El problema con el que estoy atrapado es:¿Cuál es la mejor / correcta manera de hacer que ese botón (más precisamente: NSButtonCell) dentro de este NSCell funcione correctamente? "trabajo" significa: activa el mensaje de acción asignado y muestra la imagen alternativa cuando se hace clic. Fuera de la caja, el botón no hace nada cuando se hace clic.

La información / lecturas sobre este tema es difícil de encontrar. Las únicas publicaciones que encontré en la red me apuntaron a implementar

- (BOOL)trackMouse:(NSEvent *)theEvent inRect:(NSRect)cellFrame ofView:(NSView *)controlView untilMouseUp:(BOOL)untilMouseUp; 

¿Es esta la forma correcta de hacerlo?Implementar trackMouse: en mi NSCell que contiene? ¿Y luego reenviar el evento al NSButtonCell? Hubiera esperado que el NSButtonCell mismo supiera qué hacer cuando se hace clic (y vi el trackMouse: métodos más combinados con un seguimiento real de los movimientos del mouse, no como una rueda de entrenamiento para el comportamiento de clic 'estándar'). Pero parece que no hace esto cuando se incluye en una celda en sí ... Parece que todavía no he comprendido el panorama general en las celdas personalizadas ;-)

Me alegraría si alguien pudiera responder esto (o señalarme algún tutorial o similar) por su propia experiencia, y decirmesi estoy en el camino correcto.

Gracias de antemano, Tobi

Respuestas a la pregunta(2)

Su respuesta a la pregunta