मेरे पास एक एनएसवीव है और मैं पृष्ठभूमि के लिए एक छवि खींचने के लिए ड्रॉ रेक्ट का उपयोग करता हूं। इसमें 3 सबव्यूज़ एनएसबूटन भी हैं। समस्या यह है कि जब भी माउस बटन पर नीचे होता है, तो अन्य बटन गायब हो जाते हैं। लेकिन जब मैं ड्रॉ रेक्ट विधि को हटा देता हूं, तो ऐसा नहीं होता है। तो मुझे लगता है कि छवियों को चित्रित करने के लिए इसे ड्रॉ रेक्ट विधि के साथ करना है।NSView subviews के साथ हस्तक्षेप drawRect?
मैं इससे कैसे बच सकता हूं? धन्यवाद।
संपादित करें: ठीक है, मुझे पता चला कि समस्या कहां है। असल में, मेरे पास एक NSMenuItem है, और मैं इसके अंदर 3 बटन के साथ एक दृश्य डाल रहा हूँ। लेकिन एनएसएमएनयू में, शीर्ष पर, 4 पिक्सल का पैडिंग है। समाधान से Gap above NSMenuItem custom view
वहाँ drawRect विधि में एक पंक्ति है::
[[NSBezierPath bezierPathWithRect:fullBounds] setClip];
पल, मैं इस लाइन हटाने, और बटन तो, मूल रूप से, कि गद्दी दूर करने के लिए मैं यहाँ समाधान प्रदान की इस्तेमाल किया ठीक से व्यवहार करें। लेकिन फिर, शीर्ष पर पैडिंग दूर नहीं जाता है।
- (void) drawRect:(NSRect)dirtyRect {
[[NSGraphicsContext currentContext] saveGraphicsState];
NSRect fullBounds = [self bounds];
fullBounds.size.height += 4;
[[NSBezierPath bezierPathWithRect:fullBounds] setClip];
NSImage *background = [NSImage imageNamed:@"bg.png"];
[background drawInRect:fullBounds fromRect:NSZeroRect operation:NSCompositeCopy fraction:100.0];
[[NSGraphicsContext currentContext] restoreGraphicsState];
}
क्या आप अपना कस्टम 'drawRect:' पोस्ट कर सकते हैं? –
drawRect विधि पोस्ट की गई। धन्यवाद। – user635064