NSButtonCell внутри пользовательских NSCell

в моем приложении какао мне нужен пользовательский NSCell для NSTableView. этоПодкласс NSCell содержит пользовательский NSButtonCell для обработки клика (и двух или трех NSTextFieldCells для текстового содержимого). Вы найдете упрощенный пример моего кода ниже.

@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];
}

Проблема, с которой я застрял, заключается в следующем:Каков наилучший / правильный способ заставить эту кнопку (точнее, NSButtonCell) внутри этой NSCell работать должным образом? «Работа» означает: вызвать назначенное сообщение действия и показать альтернативное изображение при нажатии. Из коробки кнопка ничего не делает при нажатии.

Информацию / чтения по этой теме найти сложно. Единственные сообщения, которые я нашел в сети, указывали мне на реализацию

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

Это правильный способ сделать это ???Реализовать trackMouse: в моем содержании NSCell? А затем переслать событие в NSButtonCell? Я бы ожидал, что сам NSButtonCell будет знать, что делать, когда на него нажимают (и я увидел trackMouse: методы, более совместимые с реально отслеживающими движениями мыши, а не как тренировочное колесо для «стандартного» поведения нажатия). Но кажется, что он не делает этого, когда включен в саму ячейку ... Кажется, я еще не понял общую картину пользовательских ячеек ;-)

Я был бы рад, если бы кто-то мог ответить на это (или указать мне на какое-нибудь учебное пособие или подобное) из своего собственного опыта - и сказать мнеесли я на правильном пути.

Спасибо заранее, Тоби

Ответы на вопрос(2)

Ваш ответ на вопрос