События мыши для подкласса NSSegmentedCell? - PullRequest
0 голосов
/ 27 июня 2009

Я пытаюсь реализовать некоторые элементарные вкладки в редакторе Какао, над которым я работаю. Я использую NSSegmentedControl и добавляю сегменты к нему в качестве вкладок. Я использую пользовательский подкласс NSSegmentedCell для вкладок, чтобы нарисовать маленькую иконку «х» рядом с текстом для закрытия вкладок, и до сих пор все шло довольно гладко.

Однако я не могу понять, как на самом деле обрабатывать события мыши для вкладок, чтобы проверить, не коснулся ли кто-нибудь (или не щелкнул) значок «x». Я попытался переопределить «mouseMoved» в моем подклассе NSSegmentedControl, но по какой-то странной причине он перестает вызываться, когда я добавляю в него новый сегмент (я устанавливаю «setAcceptsMouseMovedEvents» в yes в awakeFromNib, да, я должен также установить его где-нибудь еще ?? ). NSSegmentedCells, будучи подклассами NSCell, похоже, не имеют никакой обработки событий мыши, кроме отслеживания мыши, которая срабатывает только при нажатии на элемент управления.

Итак, вопрос в том, как мне правильно обрабатывать события мыши, либо в NSSegmentedControl, либо в подклассе NSSegmentedCell?

1 Ответ

2 голосов
/ 27 июня 2009

Взгляните на NSTrackingArea. Вы можете добавить область отслеживания к вашему NSSegmentedControl и получать события, введенные мышью, чтобы выделить кнопку закрытия.

Что касается получения событий щелчка, вам, вероятно, лучше использовать отдельный подкласс NSActionCell для кнопки закрытия и провести там некоторое тестирование на попадание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...