왜 그렇게 어려운지 알 수는 없지만 기본적으로 NSView를 내 화면에 애니메이션으로 적용하고 애니메이션이 완료되면 해당 NSView를 제거합니다. 그러나 나는 이것을하는 방법에 대한 절대적인 언급을 찾을 수없는 것으로 보인다. 누군가 제발 도와 줄 수 있니? 나는이NSView 애니메이션 후 제거
NSRect frame = blob.frame;
frame.origin.x = animationStopX;
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:timeToDisappear];
[[blob animator] setFrame:frame];
[NSAnimationContext endGrouping];
처럼 내 애니메이션을 시작하고
나는이 완료 또는 아무것도 일단이에서 콜백을 얻는 방법이 없습니다.
아 남자 . 나는 막 분석하고 일부 속성을 확인한 별도의 실행 루프를 작성하게되었습니다. 특정 조건이 충족되면 오브젝트가 제거됩니다. 나는 이런 식으로하려고 할 때 다음에 염두에 두겠다. – MZimmerman6
setCompletionHandler는 OS X 1.7 이상에서 사용할 수 있습니다. – RocketMan
애니메이션이 '취소됨'인 경우에도 'setCompletionHandler'가 호출됩니다. 즉, 애니메이션 'blob'및 'setCompletionHandler'메소드에 대한 다른 호출을 발생시키는 이벤트가있는 경우 [self.view addSubview self .blob]을 사용하면 SpinLock에서 앱을 걸거나, 방금 추가 한 경우에도보기 제거와 같은 바람직하지 않은 결과를 초래할 수 있습니다. 앱이 mainThread를 일시 중지하고 다른 디스패치 호출에 우선 순위를 부여하고 두 개의 '취소 블록'을 잘못 호출 할 수 있기 때문입니다. – strange