J'essaie de sauvegarder un contexte graphique et de l'afficher à côté de nouveaux dessins ajoutés. Ça ne fonctionne pas pour moi.Enregistrer le contexte graphique dans NSGraphicsContext afin de redessiner le contenu de la vue
Je fais cela dans une boucle pour dessiner les noms sur une coutume 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];
}
}
}
Ceci est ma méthode drawRect:
:
- (void)drawRect:(NSRect)dirtyRect
{
NSGraphicsContext *currentContext = [NSGraphicsContext currentContext];
[self drawPlayField];
[self.stringToDraw drawAtPoint:self.whereToDrawString withAttributes:self.drawStringWithAttributes];
[NSGraphicsContext saveGraphicsState];
[currentContext restoreGraphicsState];
}
Comme vous pouvez le voir, j'utiliser une boucle pour dessiner tous les noms, mais seul le nom de famille est affiché dans le NSView
. Les autres sont écrasés chaque fois que drawRect:
est appelée.
Ma question: Comment puis-je empêcher cela? Comme vous pouvez le voir, j'ai essayé d'ajouter un NSGraphicsContext
où je veux enregistrer mon contexte pour le redessiner, mais cela ne fonctionne pas. Je pourrais être loin. Pointez-moi dans la bonne direction s'il vous plaît!