私のクラスはCALayer
サブクラスであり、メッセージをキャッチすると、オブザーバーを追加しました。次のNSNotificationCenter
ように機能します。
- (void)setCurrentAutoValue:(NSNotification *) obj
{
[self setNeedsDiaplay];
}
しかし、これは機能しません。誰か助けてもらえますか?
私のクラスはCALayer
サブクラスであり、メッセージをキャッチすると、オブザーバーを追加しました。次のNSNotificationCenter
ように機能します。
- (void)setCurrentAutoValue:(NSNotification *) obj
{
[self setNeedsDiaplay];
}
しかし、これは機能しません。誰か助けてもらえますか?
別のスレッドを介して CALayers を更新するときに同じ問題が発生しました。同じスレッドで次の行のいずれかを直接呼び出すと、完全に機能しました。
[self setNeedsDisplay:YES];
[self needsDisplay];
[self.circleLayer needsDisplay];
[self.circleLayer setNeedsDisplay];
しかし、これらを別のスレッドから呼び出しても変化はありませんでした。少し遊んで、結局使用しました
[self display];
CALayers の更新を強制したのはこれだけでした。Self は、いくつかのレイヤーとサブレイヤーを含む NSOpenGLView です。多分これが役立つかもしれません。すべての CALayer で同じ方法が利用できます。たぶん、ディスプレイを呼び出す必要があります。