2012-06-26 93 views
5

我正在將邊框應用於NSView,但我如何更改邊框顏色。在setBorderColor中使用NSColor會顯示警告。我想用橙色的邊框我NSView邊框顏色

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

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

如何設置其他顏色(不包括黑色和白色)在邊境

問候, Haseena

+0

沒有爲AppKit的一個類別,這裏確實從'NSColor'到'CGColor'轉換:https://開頭要點.github.com/707921。這可能值得一看。 – Alladinian

+0

你需要使用'NSBox',它是'NSView' – onmyway133

回答

6

你需要轉換爲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); 

或者,如果你可以要求10.8+,使用[aColor CGColor]

+0

它的工作的子類!謝謝 –

1

您可以使用NSBox,這是NSView一個子類,設計用來處理這些案件

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