Базовая анимация вызывает частичное фокусировочное кольцо списка источников - PullRequest
1 голос
/ 21 апреля 2011

Я использую слегка измененный ImageAndTextCell из одного из руководств Apple в пользовательском NSOutlineView. Для тех, кто не знаком с ним, это подкласс NSTextFieldCell, который рисует изображение слева от текста ячейки.

У меня есть список источников, такой как iTunes, с рядами групп и элементами под ними. При редактировании значения ячейки кольцо фокусировки рисует только частично для первых двух строк группы (см. Ниже). Верхняя треть кольца фокусировки рисует в первом ряду, а нижняя треть - во втором ряду.

Последующие строки хорошо рисуются (см. Третий ряд ниже), и все они имеют одинаковое изображение. Что может быть причиной этого? (см. Обновление 3 ниже. Базовая анимация вызывает такое поведение)

enter image description here enter image description here enter image description here

Обновление 1

Я закомментировал практически весь пользовательский код в ImageAndTextCell, и это не имело никакого значения (остались только init, dealloc, copyWithZone, а image и

).

Обновление 2

Я прокомментировал практически весь код в подклассе NSOutlineView и мой класс делегата, а также прокомментировал весь код из Обновления 1 - все еще странные результаты. Третий ряд уже не всегда идеален, но части нарисованного прямоугольника смещены, когда я удалил различные функции.

Кроме того, предметы, с которыми у меня проблемы, находятся во второй из моих двух групп контуров. При переименовании единственного элемента в первой группе прямоугольник фокусировки был идеальным на каждом этапе пути. Как ни странно, это тот, который не может быть переименован во время стандартной работы моего приложения.

Далее я посмотрю на все мои настройки в NIB и посмотрю, не может ли там что-нибудь сломаться.

Обновление 3

Мне удалось это исправить, отключив Core Animation по всем направлениям для каждого представления в моем окне. Теперь возникает вопрос: как я могу снова включить Core Animation, чтобы мои фокусировки не выглядели дрянно?

1 Ответ

0 голосов
/ 22 декабря 2011

Не решив этого до перехода в Lion, теперь я могу с радостью сообщить, что переход на NSOutlineView на основе представлений устраняет эту проблему.Как ни странно, если вы включите поддержку слоев в IB для контурного вида, это создает другие проблемы.Тем не менее, интерфейс все еще оживляет после снятия флажков (и имеет поддержку гораздо более богатых анимаций, чем представление на основе ячейки).

...