Mac NSView анимация animationDidEnd вызывается дважды на Retina MBP
Недавно в моем приложении обнаружилась ошибка, связанная с просмотром анимации на новой MBP Retina. У меня нет нового MPB для воспроизведения, но затронутый пользователь помогает отследить проблему с помощью большого количества отладочной информации. Похоже, что animationDidEnd вызывается дважды в моем делегате анимации, во второй раз кажется, что что-то сильно испортило. Код работал на 10.5-10.7.4 в течение достаточно долгого времени, и до сих пор он кажется изолированным для новой MBP Retina.
Я использую само представление в качестве делегата анимации на случай, если что-то об отношениях между представлением и делегатом анимации изменилось, что исключает такую возможность. Я также продолжаю исследовать возможность вызова метода animationDidEnd двумя различными объектами анимации (хотя мне нечего указывать на то, что где-то в приложении выполняется другая анимация, не говоря уже об этом делегате).
Если кто-то знает о каких-либо обновлениях документации, относящейся к делегатам анимации, я был бы признателен за указатель или за любые другие идеи Благодарю.
1 ответ
Решено: проблема вообще не связана с анимацией Это было связано с использованием устаревшего метода convertPointFromBase:
Хотя устаревшие методы "обычно" хороши, по крайней мере, для следующего выпуска, это проблема, когда дело доходит до дисплея Retina. Это только предположение, но поскольку метод работает, как и ожидалось, на дисплеях без Retina, я должен предположить, что это связано с плотностью пикселей на новых дисплеях.