2012-04-02 6 views
10

में छेद एनएसविंडो या एनएसवी व्यू के हिस्सों को काटना और उन्हें देखने के लिए संभव है? मैं एक NSView के साथ एक NSWindow है और मैं करने के लिए या तो चाहते हैं:NSView या NSWindow

ए) NSWindow में एक छेद एक स्पष्ट रंग के लिए मेरी NSWindow पृष्ठभूमि यह या

बी) सेट के माध्यम से देखने में सक्षम हो सकते हैं और उसके बाद शीर्ष पर एक NSView बनाएं और डेस्कटॉप पर देखने में सक्षम होने के लिए मेरे NSViews अस्पष्टता का एक निश्चित भाग सेट करें।

enter image description here

+0

संभावित डुप्लिकेट [एनएसवी व्यू को पारदर्शी कैसे बनाएं और एनएसविंडो के तहत क्या दिखाएं?] (Http://stackoverflow.com/questions/8217487/how-to-make-an-nsview-transparent-and-show- whats-under-the-nswindow) –

उत्तर

19

हाँ, यह संभव है, और वास्तव में नहीं है कि कठिन:

इस आशय मैं बनाने के लिए कोशिश कर रहा हूँ है।

सबसे पहले, NSView का उप-वर्ग बनाएं। drawRect: में, प्रकार:

NSRectFillUsingOperation(NSMakeRect(100, 100, 100, 100), NSCompositeClear); 

यह (100,100,100,100) पर आयत में सभी पिक्सल साफ करता है।

Setting the class

सुनिश्चित करें कि आपके NSWindowsetOpaque:NO है:

इसके बाद, वर्ग आप अपनी विंडो की सामग्री को देखने के वर्ग के रूप में किया जाता निर्धारित किया है।

[window setOpaque:NO]; 

और आप कर चुके हैं। आपके आवेदन ऊपर फायर और परिणाम देखें: आकार आप चाहते हैं पाने के लिए ड्राइंग कोड के साथ

Holy window, batman!

मैस, लेकिन NSCompositeClear उपयोग करने के लिए याद है। कंपोजिटिंग मोड पर अधिक जानकारी के लिए developer documentation देखें।

+0

धन्यवाद! वास्तव में अच्छा जवाब –

+0

क्या मैं अभी भी एनएससीओमोसाइटसाइट का उपयोग कर सकता हूं अगर मैं पहला दृश्य रखना चाहता हूं और दूसरा दृश्य या उप दृश्य जोड़ना चाहता हूं? क्या एक दृश्य और खिड़की के माध्यम से देखना संभव है? –

+0

@GrantWilkinson के रूप में [यह स्क्रीनशॉट] (http://i.imgur.com/1RMRH.png) दिखाता है, पर्यवेक्षण के ड्राइंग कोड में 'NSCompositeClear' सबव्यू के माध्यम से नहीं खींचा जाएगा। सबव्यू के ड्राइंग कोड में 'एनएससीओमोपाइट क्लीयर', हालांकि, इसके पर्यवेक्षण के माध्यम से आकर्षित करेगा। – spudwaffle

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