2009-10-28 9 views
8

आप कस्टम थीम वाले एनएसबटन कैसे बनाते हैं? मेरा मतलब पृष्ठभूमि रंग को बदलने या गोलाकार किनारों से स्क्वायर किनारों में बदलने जैसे छोटे तरीके से नहीं है। मैं बटन के पूरे रूप और अनुभव को प्रतिस्थापित करना चाहता हूं। क्या कोको में भी करना संभव है? जाहिर है, मुझे एनएसबटन कक्षा को उप-वर्ग करना होगा और वहां से जाना होगा। कोई भी सहायताकाफी प्रशंसनीय होगी।आप कस्टम थीम वाले एनएसबटन कैसे बनाते हैं?

उत्तर

12

असल में, आपको NSButtonCell उप-वर्ग की आवश्यकता है। आपको इस पर Apple's documentation पढ़ना चाहिए ताकि वे इस बात की बेहतर समझ प्राप्त कर सकें कि वे कैसे बातचीत करते हैं। आप शायद NSButton को उपclass करना चाहते हैं ताकि यह आपके NSButtonCell सबक्लास का भी उपयोग कर सके।

एक बटन के लिए, अधिकांश काम drawBezelWithFrame:inView: में किया जाता है। यदि आप पाठ या छवि को आकर्षित करने के तरीके को बदलना चाहते हैं, तो आप drawText:withFrame:inView: और drawImage:withFrame:inView: ओवरराइड करेंगे।

+4

हाँ, यह करने का सबसे अच्छा तरीका है। नोट, यदि आप इंटरफ़ेस बिल्डर और मैक ओएस 10.5 का उपयोग कर रहे हैं तो आपको अब NSButton को उप-वर्ग नहीं करना है। बस अपने निब में बटन खींचें/छोड़ें और फिर सेल क्लास को अपनी कस्टम क्लास में बदलें। – Leibowitzn

+1

यह सच है। और भी, एकमात्र समय जब आपको वास्तव में 'NSButton' subclass करना होगा, तो यह है कि आप प्रोग्रामेटिक रूप से नियंत्रण बना रहे थे। – Alex

+1

क्या मैं सिर्फ संपत्ति सेट करके उपस्थिति को प्रतिस्थापित करना चाहता हूं? मैं बटन की "छवि" प्रॉपर्टी का उपयोग करके उपस्थिति को बदलने में सक्षम था लेकिन कस्टम बटन पर क्लिक होने पर मुझे एक बदसूरत ग्रे आयताकार मिला (छवि में पारदर्शिता है)। धन्यवाद। – adib

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