Я использую слегка измененный ImageAndTextCell
из одного из руководств Apple в пользовательском NSOutlineView
. Для тех, кто не знаком с ним, это подкласс NSTextFieldCell
, который рисует изображение слева от текста ячейки.
У меня есть список источников, такой как iTunes, с рядами групп и элементами под ними. При редактировании значения ячейки кольцо фокусировки рисует только частично для первых двух строк группы (см. Ниже). Верхняя треть кольца фокусировки рисует в первом ряду, а нижняя треть - во втором ряду.
Последующие строки хорошо рисуются (см. Третий ряд ниже), и все они имеют одинаковое изображение. Что может быть причиной этого? (см. Обновление 3 ниже. Базовая анимация вызывает такое поведение)
Обновление 1
Я закомментировал практически весь пользовательский код в ImageAndTextCell
, и это не имело никакого значения (остались только init
, dealloc
, copyWithZone
, а image
и
).
Обновление 2
Я прокомментировал практически весь код в подклассе NSOutlineView
и мой класс делегата, а также прокомментировал весь код из Обновления 1 - все еще странные результаты. Третий ряд уже не всегда идеален, но части нарисованного прямоугольника смещены, когда я удалил различные функции.
Кроме того, предметы, с которыми у меня проблемы, находятся во второй из моих двух групп контуров. При переименовании единственного элемента в первой группе прямоугольник фокусировки был идеальным на каждом этапе пути. Как ни странно, это тот, который не может быть переименован во время стандартной работы моего приложения.
Далее я посмотрю на все мои настройки в NIB и посмотрю, не может ли там что-нибудь сломаться.
Обновление 3
Мне удалось это исправить, отключив Core Animation по всем направлениям для каждого представления в моем окне. Теперь возникает вопрос: как я могу снова включить Core Animation, чтобы мои фокусировки не выглядели дрянно?