2012-06-26 25 views
5

NSView'a kenarlık uygularım ancak kenar rengini nasıl değiştirebilirim. SetBorderColor ile NSColor kullanmak bir uyarı gösteriyor. Ben Sınır içindeNSView Kenarlığı Rengi

Saygılar (siyah ve beyaz hariç) diğer renkleri ayarlayabilirsiniz

[self setWantsLayer:YES]; 
    self .layer.masksToBounds = YES;  
    self.layer.borderWidth  = 6.0f ; 

    [self.layer setBorderColor:CGColorGetConstantColor(kCGColorBlack)]; 

Nasıl Sınır Orange Renk kullanmak istiyorum, Haseena

+0

işlemek için NSView bir alt sınıfı olan NSBox, kullanabilir ve tasarlanmış olabilir: https: // özü .github.com/707.921. Bir göz atmaya değer. – Alladinian

+0

'NSBox', – onmyway133

cevap

6

Bir CGColorRef

dönüştürmek gerekir
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); 

Yoksa 10.8+ gerektirebilir eğer kullanmak [aColor CGColor]

+0

çalıştığı bir alt sınıfı olan 'NSBox' kullanmanız gerekir! Teşekkürler –

1

Burada CGColor` `üzere NSColor`` dan bir dönüşüm yapar AppKit için bir kategori vardır bu davaları

let box = NSBox() 
box.boxType = .custom 
box.alphaValue = 1 
box.borderColor = NSColor.red 
box.borderType = .lineBorder 
box.borderWidth = 4 
İlgili konular