2012-06-26 13 views
5

मैं एनएसवी व्यू के लिए सीमा लागू कर रहा हूं लेकिन मैं सीमा रंग कैसे बदल सकता हूं। सेटबॉर्डरोलर के साथ एनएससीओलर का उपयोग करना एक चेतावनी दिखा रहा है। मैं सीमा में ऑरेंज रंग का उपयोग करने के मैंएनएसवी व्यू रंग

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

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

कैसे अन्य रंग सीमा में

सादर (काले और सफेद को छोड़कर) सेट कर सकते हैं चाहते हैं, हसीना

+0

वहाँ AppKit के लिए एक वर्ग है कि यहाँ 'CGColor' को' NSColor' से एक रूपांतरण करता है संभाल करने के लिए: https: // सार .github.com/707,921। यह एक लायक लग सकता है। – 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 
संबंधित मुद्दे