アニメーション化する特定のNSViewがありますが、そのNSViewにはNSTableViewがあり、ビューがレイヤーバックされている場合は正しく表示されません(ビューをアニメーション化するために必要です)。だから私の答えは、アニメーションの直前にビューをレイヤーバックにし、アニメーションが完了したら、次のようにレイヤーを削除することでした。
[animatingView setWantsLayer: YES];
[NSAnimationContext beginGrouping];
[[animatingView animator] animateSomething];
[[NSAnimationContext currentContext] setCompletionHandler: ^{
[animatingView setWantsLayer: NO];
}];
[NSAnimationContext endGrouping];
ただし、このコードでは、ビューはまったくアニメーション化されません。行を削除すると、[animatingView setWantsLayer: NO];
適切にアニメーション化されますが、テーブルビューが正しく表示されないことがわかりました(問題の1つの例については、この質問を参照してください)。
だから、私の質問は:どうすればこれを解決できますか?ビューをアニメーション化したいのですが、テーブルを正しく表示したいので、この回避策は機能しません。そして、私は理由がわかりません...