Я пытаюсь сохранить графический контекст и отобразить его вместе с новыми добавленными чертежами.Это не работает для меня.
Я делаю это в цикле, чтобы рисовать имена на пользовательском NSView
:
- (void)drawNamesQuarterFinals{
self.drawStringWithAttributes = [self stringAttributes:0];
if ([self.arrayWithQuarterFinals count] > 4)
{
for (int i = 0;i < 8;i++){
self.stringToDraw = [NSString stringWithFormat:@"%@", [self.arrayWithQuarterFinals objectAtIndex:i]];
self.whereToDrawString = [self namePositions:i rowNumber:0];
[self setNeedsDisplay:YES];
}
}
}
Это мой drawRect:
метод:
- (void)drawRect:(NSRect)dirtyRect
{
NSGraphicsContext *currentContext = [NSGraphicsContext currentContext];
[self drawPlayField];
[self.stringToDraw drawAtPoint:self.whereToDrawString withAttributes:self.drawStringWithAttributes];
[NSGraphicsContext saveGraphicsState];
[currentContext restoreGraphicsState];
}
Как видите, я использую цикл для вытягивания всех имен, но в NSView
отображается только фамилия.Остальные перезаписываются каждый раз, когда вызывается drawRect:
.
Мой вопрос: как я могу предотвратить это?Как вы можете видеть, я пытался добавить NSGraphicsContext
, где я хочу сохранить свой контекст для перерисовки, но это не работает.Я мог бы быть далеко.Направь меня в правильном направлении, пожалуйста!