Il y a quelques étapes pour dessiner quelque chose dans Cocoa.
D'abord vous avez besoin d'un chemin qui sera utilisé pour définir l'objet que vous allez dessiner. Jetez un oeil ici Drawing Fundamental Shapes pour un guide sur la création de chemins dans Cocoa. Vous serez plus intéressé à envoyer le message "appendBezierPathWithOvalInRect" à un objet "NSBezierPath", cela prend un rectangle qui délimite le cercle que vous voulez dessiner.
Ce code va créer un cercle 10x10 aux coordonnées 10,10:
NSRect rect = NSMakeRect(10, 10, 10, 10);
NSBezierPath* circlePath = [NSBezierPath bezierPath];
[circlePath appendBezierPathWithOvalInRect: rect];
Une fois que vous avez votre chemin que vous voulez définir la couleur pour le contexte de dessin en cours. Il y a deux couleurs, trait et remplissage; le trait est le contour du tracé et le remplissage est la couleur intérieure. Pour définir une couleur, envoyez "set" à un objet "NSColor".
Ceci définit la course au noir et le remplissage rouge:
[[NSColor blackColor] setStroke];
[[NSColor redColor] setFill];
Maintenant que vous avez votre chemin et vous avez vos couleurs définies il suffit de remplir le chemin, puis dessiner:
[path stroke];
[path fill];
Tout cela devra être fait dans un contexte graphique comme dans drawRect d'une vue peut-être.Tout cela avec un contexte graphique ressemblerait à ceci:
- (void)drawRect:(NSRect)rect
{
// Get the graphics context that we are currently executing under
NSGraphicsContext* gc = [NSGraphicsContext currentContext];
// Save the current graphics context settings
[gc saveGraphicsState];
// Set the color in the current graphics context for future draw operations
[[NSColor blackColor] setStroke];
[[NSColor redColor] setFill];
// Create our circle path
NSRect rect = NSMakeRect(10, 10, 10, 10);
NSBezierPath* circlePath = [NSBezierPath bezierPath];
[circlePath appendBezierPathWithOvalInRect: rect];
// Outline and fill the path
[circlePath stroke];
[circlePath fill];
// Restore the context to what it was before we messed with it
[gc restoreGraphicsState];
}
On dirait qu'il est encore a: bezierPathWithOvalInRect: Merci! – kdbdallas
Ouais, c'est nouveau chez Leopard si je me souviens bien. Avant cela, l'une des toutes premières choses que les programmeurs de Cocoa débutants (moi compris) avaient à faire était de définir une catégorie dans NSBezierPath pour créer un chemin rectangle circulaire ou arrondi. :) –