पर नीचे है, तो मैं यह जांचना चाहता हूं कि मेरे कस्टम NSButton वर्तमान में एक दबाए गए राज्य में है (उपयोगकर्ता इस पर क्लिक कर रहा है) मेरे कस्टम drawRect विधि में। कुछ ऐसा:जांच कर रहा है कि क्या NSButton drawRect
- (void)drawRect:(NSRect)dirtyRect{
if ([self buttonIsInPressedState]) {
[[self alternateBGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}else{
[[self BGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}
[super drawRect:dirtyRect];
}
आप इस तरह की चीज़ कैसे देखेंगे? क्या यह संभव है?
समाधान
मैं बटन सेल पर mouseDownFlags जाँच समाप्त हो गया। अगर यह "सही" जिस तरह से यह करना है पता नहीं है, इसलिए मुझे पता है अगर आप एक बेहतर सुझाव है करते हैं:
- (void)drawRect:(NSRect)dirtyRect{
if ([self.cell mouseDownFlags] == 0) {
[[self BGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}else{
[[self alternateBGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}
[super drawRect:dirtyRect];
}
मैंने self.state की कोशिश की है, लेकिन यह केवल "गीले" या "ऑफ" बटन के गीलेर के लिए काम करता है! तो बटन "चालू" है, एक बार मैंने इसे दबा दिया है और इसे जारी किया है। मैं जांचना चाहता हूं कि उपयोग वर्तमान में दबा रहा है या नहीं। माउसडाउन भी एक विकल्प है, लेकिन मुझे कुछ कारणों से काम करने के लिए माउसअप नहीं मिल सकता है। –