我不知道爲什麼它被證明是如此困難,但基本上我想在我的屏幕上爲NSView製作動畫,並且一旦完成該動畫,就移除該NSView。但似乎我完全沒有提到如何做到這一點。有人可以幫忙嗎?NSView刪除動畫後
我開始我的動畫這樣
NSRect frame = blob.frame;
frame.origin.x = animationStopX;
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:timeToDisappear];
[[blob animator] setFrame:frame];
[NSAnimationContext endGrouping];
我沒有從這個得到一個回調,一旦它完成或任何方式。
噢人,我希望我能有這個前幾天看到。我最終創建了一個單獨的運行循環,只是解析並檢查了一些屬性。如果滿足某些條件,我最終刪除了該物體。 下次我嘗試做這樣的事情時,我會記住它。 – MZimmerman6 2012-05-01 15:13:24
setCompletionHandler適用於OS X 1.7及更高版本。 – RocketMan 2012-07-25 17:14:27
請記住,即使動畫被「取消」,也會調用「setCompletionHandler」,即如果您有另一個事件觸發另一個調用動畫blob的方法,並且在其setCompletionHandler中,您將自動調用setApletionHandler [self.view addSubview self .blob],您可能最終會將您的應用掛在SpinLock上,或者您可能會收到不良結果,例如刪除視圖,即使您剛添加它。這是因爲應用程序可以暫停mainThread,優先考慮另一個調度呼叫,並且按順序調用兩個「取消塊」。 – strange 2013-09-12 19:53:38