0

NSView (하위 뷰를 mainview라고 함)에 몇 개의 하위 뷰가 있습니다. 이러한 하위 뷰 중 하나에는 drawRect 메서드에서 수행되는 시간 기반 애니메이션 (타이머를 통해 호출 됨) 애니메이션이 있습니다. 또한 메인 뷰에 적용된 CIFilter 효과가 있습니다.CIFilter가 10.8 이하에서 적용된 후에 NSView의 drawRect가 호출되지 않습니다.

모두 10.6.x 및 10.7.x에서 예상대로 작동합니다 (즉, 애니메이션이 적용되고 필터가 적용된 것을 볼 수 있음).

문제는 10.8 이하로 나타납니다. setContentFilters : 및 setWantsLayer :)를 사용하여 mainview에 필터를 적용한 직후에 애니메이션이 멈추고 (setContentFilters : nil을 사용하여) 필터를 제거한 후에 만 ​​애니메이션이 다시 시작됩니다. 내 서브 뷰의 drawRect 메서드는 심지어 필터가 적용될 때 호출되지 않습니다 ...

누군가가 상황에 대해 밝힐 수 있다면 정말 감사하겠습니다.

감사합니다.

답변

0

setNeedsDisplay :가 안전하지 않습니다. setNeedsDisplay : 메인 스레드가 아닌 하위 뷰를 호출했습니다. 내 메인 스레드에서 전화를 걸어 문제를 해결했습니다.

관련 문제