Я пишу пользовательский NSControl с пользовательскими NSCells. Это элемент управления, поэтому он должен реагировать на мышь. Я создал NSTrackingArea над моим управлением, реализовано -mouseEntered:
, -mouseExited:
и -mouseMoved:
. (И мне нужно будет реализовать -mouseUp/Down:
, но я понятия не имею, что делать там, поэтому пока я еще не переопределил эти методы.) В этих методах я успешно определяю, в какой ячейке находится мышь. Теперь у меня есть два вопроса:Какой метод я должен позвонить в свой NSCell
- Это хороший подход для отслеживания мыши? Если нет, что мне делать вместо этого?
- Какой метод я должен вызвать для своего NSCell щелчком мыши, когда мышь входит в ячейку, когда мышь покидает ячейку и т. Д.? Документы Apple не совсем понятны.
Итак, в основном: Когда мне следует называть какой метод на моем NSCell позволить ему реагировать на события мыши?
EDIT:
Перечитывая документы, я думаю, что я должен вызвать NSCell-х -trackMouse:inRect:ofView:untilMouseUp:
и переопределить -startTrackingAt:inView:
, -continueTracking:at:inView:
и -stopTracking:at:inView:mouseIsUp:
. Опять два вопроса: 1) документы дают впечатление, что они вызываются только при отключении мыши. Это верно? Тогда что мне делать вместо этого? 2) Где/когда я должен позвонить NSCell's -trackMouse:inRect:ofView:untilMouseUp:
?
Взгляните на NSActionCell; он должен дать вам образец, за которым вы хотите следовать. –
Не могли бы вы рассказать об этом? Я хочу добавить подсветку, так что мне нужно больше, чем базовая поддержка цели/действия. @JimPuls – 11684