J'applique une bordure à Nsview mais comment puis-je modifier la limitecolor. L'utilisation de NSColor avec SetBorderColor montre un avertissement. Je veux utiliser la couleur orange dans la bordure Comment puis-je définir d'autres couleurs (à l'exclusion du noir et du blanc) dans la frontière p> Cordialement,
Haseena p> p>
3 Réponses :
Vous devez convertir en CGColorref
NSColor *orangeColor = [NSColor orangeColor]; // Convert to CGColorRef NSInteger numberOfComponents = [orangeColor numberOfComponents]; CGFloat components[numberOfComponents]; CGColorSpaceRef colorSpace = [[orangeColor colorSpace] CGColorSpace]; [orangeColor getComponents:(CGFloat *)&components]; CGColorRef orangeCGColor = CGColorCreate(colorSpace, components); // Set border self.view.layer.borderColor = orangeCGColor; // Clean up CGColorRelease(orangeCGColor);
Vous pouvez utiliser nsbox code>, qui est une sous-classe de nsview code> et conçu pour gérer ces cas
wow ... si simple ces jours-ci. Dans votre NSView lors de votre création:
-(void)drawRect:(NSRect)rect
{
self.layer.borderColor = [NSColor systemGrayColor];
// or color defined in Asset Catalog
self.layer.borderColor = [NSColor colorNamed:@"BorderColor"].CGColor;
[super drawRect:rect];
}
Il existe une catégorie pour AppKit qui fait une conversion de
nscolor code> verscgColor code> ici: GIST.GITUB.COM/707921 . Cela pourrait valoir un coup d'oeil.Vous devez utiliser
nsbox code>, qui est une sous-classe densview code>