2011-09-06 17 views
6

मैं addNewItem:(NSToolbarItem *)item नामक एक विधि की तलाश में हूं या ऐसा कुछ ऐसा है जो मुझे अपने टूलबार में प्रोग्रामेटिक रूप से निर्मित आइटम जोड़ने देता है, लेकिन मुझे कोई नहीं मिला है। मैं एक ऐसा आइटम जोड़ना चाहता हूं जो उपयोगकर्ता पॉप-अप दिखाता है जब उपयोगकर्ता उस पर क्लिक करता है, जैसे सफारी में जब उपयोगकर्ता कुछ डाउनलोड करता है।मौजूदा टूलबार में प्रोग्रामेटिक रूप से नया NSToolbarItem कैसे जोड़ें?

उत्तर

12

आपको एक कक्षा होना चाहिए जो NSToolbarDelegate प्रोटोकॉल के अनुरूप हो और उस वर्ग का उदाहरण आपके टूलबार का प्रतिनिधि हो। उदाहरण के लिए, यह प्रतिनिधि -toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar: लागू करेगा, जो किसी दिए गए पहचानकर्ता के लिए NSToolbarItem उदाहरण देता है, संभवतः उस आइटम को मांग पर बना रहा है। ऐसा करके, आप टूलबार आइटम को वापस करने के लिए अपने प्रतिनिधि को तैयार कर रहे हैं जब टूलबार इसे पहचानकर्ता से संबंधित आइटम के लिए पूछता है।

ऐसा करने के बाद, आप टूलबार उदाहरण में टूलबार में -[NSToolbar insertItemWithItemIdentifier:atIndex] भेजकर टूलबार में एक नया टूलबार आइटम जोड़ सकते हैं। पहचानकर्ता स्ट्रिंग तर्क उपरोक्त अनुच्छेद में उपयोग किए गए एक से मेल खाना चाहिए। यदि आपको किसी आइटम को निकालने की आवश्यकता है, तो टूलबार पर -[NSToolbar removeItemAtIndex:] भेजें।

यह Toolbar Programming Topics for Cocoa दस्तावेज़ के Adding and Removing Toolbar Items अनुभाग में उदाहरणों के साथ वर्णित है।

+6

इतना जटिल क्यों, ऐप्पल? – Lukas

+2

@ लुकास क्योंकि एनएसटीूलबार डिजाइन किए जाने पर वापस, रैम खपत को कम करने के लिए इस तरह की तकनीकें आवश्यक थीं। यह एक मानक पैटर्न था और कैसे कोको में _everything_ काम करता था। केवल नई चीजें इस तरह काम नहीं करती हैं। –

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