2011-01-16 11 views
5

पर एक छाया जोड़ना मेरे पास NSImageView है और एक छाया जोड़ना चाहते हैं। मैंने इसे प्रोग्रामेटिक रूप से करने की कोशिश की है:एक NSImageView

NSShadow *shadow = [[[NSShadow alloc] init] autorelease]; 
[shadow setShadowBlurRadius:4.0f]; 
[shadow setShadowOffset:CGSizeMake(4.0f, 4.0f)]; 
[shadow setShadowColor:[NSColor blackColor]]; 

[view setShadow:shadow]; 

लेकिन यह दिखाई नहीं देगा। कोई विचार? धन्यवाद।

+0

आप एक खाली एनएसआईमेज (उसी आकार के रूप में जिसे आप आकर्षित करना चाहते हैं) बनाने का प्रयास कर सकते हैं, उस पर 'लॉकफोकस', छाया सेट करें, और मूल को नए (और 'अनलॉक फोकस') में खींचें। मैं छवियों को टिनटिंग के लिए उस तकनीक का उपयोग करता हूं; गारंटी नहीं दे सकता कि यह छाया के लिए काम करेगा। – Richard

उत्तर

9

आपको छाया के पैरामीटर सेट करना होगा। डिफ़ॉल्ट रूप से, यह सभी शून्य है, इसलिए इसका दृश्य पर कोई प्रभाव नहीं पड़ता है।

देखें -setShadowColor:, -setShadowRadius:, और -setShadowOffset:NSShadow पर, मेरा मानना ​​है।

+0

मैंने उपरोक्त सभी को कोई प्रभाव नहीं जोड़ने का प्रयास किया। मैंने उपरोक्त नमूना अद्यतन किया। –

+2

क्या आपके विचार को 'कैलियर' द्वारा भी समर्थित किया गया है? यदि नहीं, तो आपको छाया सेट करने से पहले 'setWantsLayer: '(' YES' के मान के साथ) भेजकर कोर एनीमेशन बैकिंग सक्षम करना होगा। –

+0

@ जोनाथन: यही वह था जो मैं वास्तव में एक उत्तर के रूप में पोस्ट करने वाला था। 'setShadow:' बस छाया एनीमेशन परत पर छाया की गुणों की प्रतिलिपि बनाता है, इसलिए दृश्य को 'कैलियर' द्वारा समर्थित किया जाना चाहिए। इंटरफ़ेस बिल्डर का उपयोग करके दृश्य में छाया लागू करना चाहते हैं, यह भी ध्यान देने योग्य है। – Joost

संबंधित मुद्दे