Безопасно ли получить NSG CGContext от -drawRect:
и использовать его для более поздней прорисовки? В таком простом тесте, как этот:
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:
. Это прекрасно работает для множества случаев, но более процедурный способ рисования облегчит жизнь в моем конкретном случае.