2010-01-18 10 views
6

मैं ग्रे-आउट ओपन फ़ाइल मेनू आइटम को गैर-दस्तावेज़-आधारित एप्लिकेशन में सक्षम करना चाहता हूं। दस्तावेज़-आधारित अनुप्रयोग स्वचालित रूप से आपको प्लेस्ट प्रविष्टियों आदि के आधार पर फ़ाइल एक्सटेंशन फ़िल्टर के साथ एक अच्छा खुला फ़ाइल संवाद देते हैं ... निश्चित रूप से, इस कार्यक्षमता को पुनः सक्षम करने के लिए एक सरल सुरुचिपूर्ण विधि मौजूद है।गैर-दस्तावेज़-आधारित अनुप्रयोग में खुली फ़ाइल मेनू आइटम को सक्षम करना

मैं है ...

    परियोजना गुण खिड़की
  1. आवेदन प्रतिनिधि
  2. जोड़ा प्रतिनिधि आवेदन के रूप में मेरी नियंत्रक वर्ग निरुपित करने के लिए
  3. जोड़ा गया दस्तावेज़ प्रकार: OpenFile: मेरे नियंत्रक वर्ग के लिए

उत्तर

3

कुंजी यह है कि मेनू आइटम की प्रतिक्रियाकर्ता श्रृंखला के साथ कुछ -openDocument: कार्रवाई का जवाब देना है। आम तौर पर यह NSDocumentController है। मैं यह देखता हूं कि एक खाली दस्तावेज़-आधारित एप्लिकेशन उस मेनू आइटम को कैसे सेट करता है।

+1

यह मेनमेनू.एक्सिब में पहले उत्तरदाता के लिए लगा हुआ है। इसे गैर-दस्तावेज़-आधारित-ऐप टेम्पलेट के MainMenu.xib में भी लगाया जाना चाहिए। यदि नहीं, तो इसे हुक करें, फिर उत्तरदाता श्रृंखला में रहें और 'openDocument:' का जवाब दें। –

3

सबसे पहले, सुनिश्चित करें कि आपकी फ़ाइल-> ओपन मेनू आइटम का चयनकर्ता पहले प्रतिक्रिया के openDocument: क्रिया से जुड़ा हुआ है।

दूसरा, सुनिश्चित करें कि आप कार्रवाई का जवाब दे रहे हैं। Responder chain of a non-document application with an NSWindowController object पर एक नज़र डालें। आपकी प्रतिक्रियाकर्ता श्रृंखला के भीतर कोई भी वस्तु संदेश का जवाब दे सकती है, लेकिन ऑब्जेक्ट को चुनना सर्वोत्तम है जो सबसे सक्षम और उपयुक्त है। एक बार जब आप निर्णय ले लेंगे कि आपकी प्रतिक्रियाकर्ता श्रृंखला में कौन सी कक्षा संदेश को संभालने के लिए सबसे उपयुक्त है, तो openDocument: क्रियान्वयन के लिए कार्रवाई जोड़ें और इसके अनुसार जवाब देने के लिए अपना कोड लिखें।

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