Я пытаюсь идентифицировать пользовательские подклассы CALayer через тестирование.
Это прекрасно работает с одним исключением:
Мои пользовательские CALayers представляют текстовые окна, и все данные (содержимое, цвет фона, положение, ...) взяты из NSManagedObjects (из CoreData). Мой подкласс CALayer сохраняет связанный с ним класс managedObject в переменной экземпляра.
Проблема: я не могу получить доступ к этому ивару:
Когда я проверяю так:
CustomCALayer *customLayer =[self.layer.presentationLayer hitTest:mouseDownPosition];
... customLayer содержит все атрибуты, которые есть у CALayer
(например, backgroundColor
или name
), но не мой управляемый объект ivar.
Я подозреваю, что это происходит потому, что hitTest возвращает CALayer
, а не мой подкласс.
Но как мне обойти это?
(Я также попытался выполнить тестирование подслоя «hitTestLayer» моего слоя и затем получить слой через hitTestLayer.superlayer
. Но, ну, superlayer
также возвращает CALayer
...)