NSViewのCGContextを-drawRect:
から取得して後で描画を実行するのは安全ですか?このような簡単なテストでは:NSViewの描画コンテキスト
CGContextRef context = NULL;
- (void)drawRect:(NSRect)r
{
if (!context)
context = [[NSGraphicsContext currentContext] graphicsPort];
}
- (void)drawSomething
{
CGContextSetRGBFillColor(context, 1, 0, 0, 1);
CGContextFillRect(context, CGRectMake (0, 0, 100, 100));
CGContextFlush(context);
}
すべてが-drawSomething
が呼び出されたときに動作するようですが、それはコンテキストが変更されないことを保証しているのですか?
わかりましたように、私は-drawRect:
を使用して標準的な描画方法を回避しようとしています。無限の場面でうまく動作しますが、より手続き的な描画方法は、私の特定のケースでは人生を楽にします。