2010-07-07 9 views
5

मेरे पास कुछ महत्वपूर्ण कार्यक्रम हैं, जो बटन से मेल खाते हैं। आधा सेकेंड कहने के लिए मुझे उदासीन दिखने के लिए बटन को सेट/कॉल करने के लिए किस संपत्ति/विधि को सेट करना है (राज्य बदलें?)?कोको बटन बनाना जैसे दबाया जाता है, प्रोग्रामेटिक रूप से

उत्तर

1

तरह से मैं हल यह मैं 'पुश बंद पुश' एक प्रकार की NSButton सेट और फिर मेरी कुंजी ईवेंट हैंडलर में निम्न कोड का इस्तेमाल किया है:

NSButton *button = [self.superview viewWithTag:event.keyCode]; 
if (button != nil && button.state == NSOffState) { 
    [button performClick:event]; 
    [button performSelector:@selector(performClick:) withObject:event afterDelay:0.5]; 
} 

यह रूप में अगर बटन पर प्रकाश डाला जाएगा उपयोगकर्ता ने उस पर क्लिक किया था, और फिर यह फिर से आधे सेकेंड में क्लिक करेगा।

1

मेरा मानना ​​है कि बटन सेल का -setHighlighted: विधि नियंत्रण करता है कि बटन दबाया गया है या नहीं। आपको इसे बदलने के बाद बटन पर -setNeedsDisplay: पर कॉल करने की भी आवश्यकता हो सकती है, और यह संभव है कि बटन अपने सेल के हाइलाइट किए गए राज्य को स्वयं ही बदल देगा, इसलिए मुझे डर है कि आपको यह काम करने के लिए चारों ओर घूमने की आवश्यकता हो सकती है।

(मैं स्वीकार करने के लिए, कि मैं इस से किसी के बारे में पूरी तरह से कुछ नहीं कर रहा हूँ है, हालांकि,।)

+0

हाँ, कि यह किया: [(NSButtonCell *) yourButton.cell setHighlighted: हाँ]; setNeedsDisplay के लिए कोई ज़रूरत नहीं है। धन्यवाद। – Borzh