2011-02-07 9 views
5

मैं एक सवाल पहले यहां प्रथम प्रत्युत्तर के उपयोग के संबंध में पूछा - और यहाँ एक प्रतिक्रिया मिली:प्रथम प्रत्युत्तर स्पष्टीकरण की जरूरत

Trouble with First Responder

किसी को भी मन मुझे इस के लिए 'dummies' संस्करण दे सकते हैं? कोको में नया होने के नाते, मुझे नहीं पता कि इन तरीकों में से किसी एक के साथ कहां से शुरू करना है। मैं जवाब अवार्ड जल्दी

ज़ैक

उत्तर

22

पहला उत्तरदायी विशेष रूप से this है।

आप जो भी पूछ रहे हैं, लक्ष्य-क्रिया है। आपके पास एक UI ऑब्जेक्ट (बटन, मेनू आइटम) है जिसे आपको कई चीजें होने की आवश्यकता है, लेकिन UI ऑब्जेक्ट केवल एक क्रिया भेजता है।

इसलिए समाधान: उस क्रिया को कई चीजें करें।

यूआई ऑब्जेक्ट को अपने कंट्रोलर ऑब्जेक्ट (आपके मामले में, दस्तावेज़) में लागू एक एक्शन विधि तक दबाएं। उस विधि में, बटन को सभी चीजों को करने की ज़रूरत है।

सबक्लासिंग समाधान मूल रूप से वही बात है, यूआई ऑब्जेक्ट को आपके दस्तावेज़ पर हुक करने के बजाय, आप इसे फ़ॉन्ट मैनेजर तक लगाते हैं, लेकिन आप फ़ॉन्ट मैनेजर को NSFontManager के उप-वर्ग का एक उदाहरण भी बनाते हैं NSFontManager के उदाहरण के बजाय सीधे बनाएं। अपने उप-वर्ग में, आप addFontTrait: ओवरराइड करते हैं और अपने कार्यान्वयन में अन्य व्यवहार जोड़ते हैं। या तो उस विधि की शुरुआत या समाप्ति पर, आप NS12ontManager के कार्यान्वयन को आमंत्रित करने के लिए [super addFontTrait:sender] भेजते हैं, इसलिए मूल कार्यान्वयन किया जाता है।

लंबे पैराग्राफ, लेकिन वास्तव में यह सब कुछ अधिक काम नहीं है: अंतर केवल सबक्लास बना रहा है और उदाहरण को उस सबक्लास का उदाहरण बना रहा है।


आपने पहले कहा है "ऐप्पल दस्तावेज़ीकरण अविश्वसनीय रूप से अस्पष्ट है", लेकिन यह वास्तव में नहीं है। वहां बहुत कुछ होता है, और शायद आप सही दस्तावेजों को नहीं देख रहे हैं।

इन दस्तावेजों आप पढ़ने की जरूरत है, शुरू से आखिर तक, और क्रम में हैं:

संपादित करें: इस सूची में मैं में इस सूची की एक अद्यतन (Xcode 4 के लिए) संस्करण तैनात Xcode 3. के लिए है another answer

  1. The Objective-C Programming Language
  2. The Memory Management Programming Guide for Cocoa
  3. The Cocoa Fundamentals Guide (जो लक्ष्य कार्रवाई बताते हैं, अन्य बातों के अलावा)
  4. Application Architecture Overview
  5. Resource Programming Guide
  6. Interface Builder User Guide
  7. Xcode 3 गाइड: 0,123,
    1. Xcode Project Management Guide
    2. Xcode Workspace Guide
    3. Xcode Build System Guide
    4. Xcode Debugging Guide
  8. Document-Based Applications Overview

वहाँ भी एक Instruments User Guide, दुर्भाग्य है, लेकिन, कि एक है अस्पष्ट या, अधिक सटीक, अपूर्ण होने के लिए। यह कई उपयोगी जानकारी छोड़ देता है, जैसे दुर्घटनाओं को डीबग करने के लिए इंस्ट्रूमेंट्स लाश टेम्पलेट का उपयोग कैसे करें। यह एक उच्च स्तरीय अवलोकन है, और कुछ नहीं।

यह बहुत पढ़ रहा है, लेकिन यह आपको वह सबकुछ बताएगा जो आपको जानने की ज़रूरत है, और वह ऑर्डर लगभग वही आदेश है जिसे आपको इसे जानने की आवश्यकता होगी।

+2

+1 लेकिन मुझे और देना अच्छा लगेगा । – Abizern

+0

मैं स्पष्टीकरण पीटर की सराहना करता हूं! बहुत उपयोगी मैं प्रलेखन लिंक और सुझाए गए पढ़ने के क्रम के लिए उस – Zakman411

+0

+ 1 में देखता हूं। अब तक मुझे एप्पल दस्तावेज बहुत अच्छा लगता है लेकिन कम मात्रा में भारी मात्रा में भारी बारिश होती है। यह एक बड़ी मदद है। –

1

अन्य जवाब कहते हैं आपके पास दो विकल्प है कि:

पहले: आपके द्वारा बनाए गए एक के बाद कार्रवाई की जगह है और उसके बाद मूल संस्करण अपने आप को सुविधा को लागू। इस मामले में, यह केवल NSFontManager की उचित विधि को कॉल करने के लिए पर्याप्त है। यही है, आप विधि के अपने कार्यान्वयन के लिए मूल कार्यक्षमता जोड़ते हैं। इस तरह, दोनों कार्यों को निष्पादित किया जाता है।

दूसरा: उस वर्ग को उपclass जहां मूल कार्यक्षमता लागू की गई है और -addFontTrait नामक विधि को ओवरराइड करके अपना कार्यान्वयन जोड़ें। इस तरह, आपका कोड "साथ में" निष्पादित हो जाता है। This question आपको सही कार्यान्वयन खोजने में मदद कर सकता है।

तो, सार यह है कि आप या तो अपने कार्यान्वयन या अन्य तरीकों के लिए मूल कार्यक्षमता जोड़ सकते हैं। इस मामले में, मैं पहले कोशिश करता हूं।

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