Как да получавате кликвания на мишката в подклас NSTableCellView?

Подкласирах NSTableCellView, за да направя някои персонализирани рисунки. Когато стилът на осветяване на съдържащия NSOutlineView е зададен на Няма моят изглед получава mouseDown събития.
Когато променя стила на осветяване на NSOutlineView на Обикновен, моят изглед вече не получава своето mouseDown събития.

Как мога да предам събитията mouseDown към моя изглед, като същевременно запазя стила на подчертаване на очертания изглед на Regular?


person Mike T    schedule 05.01.2014    source източник
comment
Някакви подизгледи в NSTableCellView или внимавате за щраквания, отиващи директно към този изглед?   -  person Jay    schedule 05.01.2014


Отговори (1)


Очевидно NSTableView заменя -hitTest:, за да приложи избора на ред/плъзгане/и т.н. функционалност - това би обяснило защо нямате проблеми, когато стилът на маркиране е Няма.

Според Документи на Apple:

Определяне как подизгледите трябва да реагират на събития

[...] Ако създадете подклас на изглед на таблица, можете да замените validateProposedFirstResponder:forEvent:, за да посочите кои изгледи могат да станат първият отговор. По този начин получавате събития с мишката.

Или по желание... ако обработката на събития е жизненоважна за вашия подклас: Защо не създадете NSControl подклас?
Съгласно същите документи има специална обработка за контроли, които вече са внедрени в класа за изглед на таблица със запаси.

person Jay    schedule 05.01.2014
comment
Това е. В моя подклас на очертания изглед аз замествам validateProposedFirstResponder:forEvent:, за да върна YES, когато responder е моят NSTableCellView подклас. Благодаря ти много. - person Mike T; 05.01.2014