Я экспериментирую с созданием настраиваемой области видимости, которая использует объекты NSButtonCell в утопленном стиле. Однако у меня возникают проблемы при рисовании лицевой панели, когда мышь зависает. Я могу заставить его работать, создавая области отслеживания и установив showBorderOnlyWhileMouseInside на NO, когда мышь находится внутри, и YES, когда она выходит наружу, но для меня это похоже на хак, тем более что NSButtonCell будет выполнять отслеживание самостоятельно.
Если я использую метод setCell элемента управления, ячейка кнопки вызовет addTrackingRect: owner: userData: acceptInside: элемента управления и настроит свое собственное отслеживание для рисования панели при наведении курсора мыши. Однако, если я хочу использовать несколько ячеек кнопки в одном и том же элементе управления, я пытаюсь установить controlView каждой ячейки в пользовательский элемент управления, используя метод setControlView для ячейки кнопки, но он не запрашивает ячейку для настройки областей отслеживания, как это делает setCell.
Техника должна быть возможной, поскольку NSMatrix делает это, но после прочтения каждого доступного API и форума я не нашел способа инициировать поведение отслеживания NSButtonCell без использования метода setCell его элемента управления. Мой лоб кровоточит от удара по столу - помощь была бы признательна.