दिलचस्प पोस्ट
जीसीसी: – स्टार्ट-समूह और -एंड-समूह कमांड लाइन विकल्प क्या हैं? क्या पटजबटगग्जजांजिका जैसे तारों का पता लगाने का कोई तरीका है? संपादन टेक्स्ट पर एंड्रॉइड में ईमेल एड्रेस वैधीकरण मैट्रिक्स को एक कॉलम में कैसे सेट करें, मैट्रिक्स डेटा प्रकार बनाए रखें, पंक्ति / स्तंभ नाम बनाए रखें? एएसपी.नेट में सत्र का समय समाप्त अजगर फिर से मॉड्यूल समर्थन शब्द सीमाएं (\ b) करता है? isset () और खाली () – का उपयोग करने के लिए जब तक यह पूरी तरह तैयार नहीं होता है तब तक खिड़की को प्रदर्शित करने से रोकना? एक दुभाषिया / संकलक काम कैसे करता है सी # का उपयोग करके मेरी स्ट्रिंग मैच करने के लिए मैं कॉम्बो बॉक्स में चुने गए आइटम को कैसे सेट करूं? क्या मुझे सफलता और त्रुटि के बजाय नए jQuery AJAX कोड के लिए। () और .fail () का उपयोग करना चाहिए फ्रेगमेंट ऑन क्रेएट वीव और एक्टिवेटिवेटेड दो बार कहा जाता है स्विंग प्रोग्राम का डिफ़ॉल्ट फ़ॉन्ट सेट करना बोली के लिए HTML5 इनपुट पैटर्न खोज एक स्थान समान स्ट्रिंग की पहचान की तुलना क्यों करता है?

ओएस एक्स फाइंडर प्लगइन कैसे लिखें

मैक ओएस एक्स फाइंडर प्लगिन लिखने के लिए मैं एक गाइड या नमूना कोड देख रहा हूं? यह जानना चाहूंगा कि कुछ सरल कार्य कैसे करें:

  1. आइकन पर छवि ओवरलेयर जोड़ना
  2. संदर्भ मेनू आइटम जोड़ना
  3. बदलावों को सुनें

मुझे निम्नलिखित दो संसाधन मिले:

  • OS X के लिए प्रासंगिक मेनू प्लगइन्स लेखन : 2002 से एक पुराना दस्तावेज़ है जो COM API लक्ष्यीकरण Mac OS X 8/9 का उपयोग करता है
  • एससीप्लगिन : ओपन-सोर्स एसवीएन मैक एप्लिकेशन जो कि फाइंडर प्लग-इन शामिल है

मुझे SCPlugin कोड की समीक्षा करने के लिए SCPlugin , लेकिन वह पचाने के लिए एक आसान नमूना खोजने की उम्मीद कर रहा था।

वेब के समाधान से एकत्रित समाधान "ओएस एक्स फाइंडर प्लगइन कैसे लिखें"

अफसोस की बात है, एक खोजक प्लगइन प्रोग्रामिंग वास्तव में अभी भी COM के साथ अपने हाथ गंदे होने की आवश्यकता है। यदि आप SCPlugin प्रोजेक्ट के SCFinderPlugin उपप्रोजेक्ट को देखते हैं, तो आपको पता चल जाएगा कि यह आपके पहले लिंक में दिए गए समान तकनीकों का अनुसरण करता है, जिसमें COM के लिए एक वीटेल सेट, AddRef / ReleaseRef फ़ंक्शंस लिखना आदि शामिल हैं। एक प्लगइन को लिखना, जहां आप एक साथ पुराने स्कूल कार्बन मेमोरी प्रबंधन, कॉम-स्टाइल मेमोरी प्रबंधन, और कोको / नई-शैली कार्बन मेमोरी प्रबंधन का प्रबंध कर रहे हैं, एक अविश्वसनीय दर्द हो सकता है- और यह पूरी तरह से इस तथ्य की उपेक्षा करता है कि आप तीन या अधिक मौलिक अलग एपीआई में बातचीत करना, विभिन्न नामकरण सम्मेलनों और फोन सिमेंटिक के साथ। स्थिति को बुरी तरह से गरीब कॉलिंग एक विशाल ख़ामोश होगा।

उज्जवल तरफ, मैक ओएस एक्स 10.6 हिम तेंदुए में खोजक कोको में पूरी तरह से फिर से लिखा गया है – और इसके साथ ही बेहद बेहतर प्लगइन इंटरफेस आते हैं। यदि आप काफी हद तक भाग्यशाली हैं, जहां आप वास्तव में केवल हिम तेंदुए को लक्षित कर सकते हैं, तो आपको शायद एडीसी प्रीमियर या उच्चतर सदस्यता प्राप्त करना चाहिए, पूर्व-रिलीज निर्माण को डाउनलोड करना चाहिए और उसके खिलाफ कोड इसके अलावा, आपका प्लग इन 10.6 पर किसी कोको के पुनर्लेखन के बिना भी काम नहीं कर सकता है, इसलिए हिम तेंदुए को देखने से पहले इसे रिलीज होने से पहले इसे ठीक तरह से समझना चाहिए।

फाइंडर आइकन ओवरले उदाहरण प्रोजेक्ट नीचे दिए गए उत्तर के एक छोटे और बहुत बुनियादी लेकिन वास्तव में काम करने वाले उदाहरण का प्रतिनिधित्व करता है।

https://github.com/lesnie/Finder-Icon-Overlay

मुझे पता है यह बहुत पुराना है, लेकिन कुछ विषय में अभी भी रुचि हो सकती है (?)

यह है कि मैंने इसे तेंदुए (10.6) के तहत किया है। पहले उचित खोजकर्ता के शीर्षलेखों पर आवश्यक है इसे पाने के लिए क्लास-डंप टूल का उपयोग करें फिर अपना कोड एक सिमएल प्लगइन के रूप में लिखें (यह कैसे करना है, यह दस्तावेज देखें), कुछ तरीकों से स्वेज़िंग करना उदाहरण के लिए ListView में आइकन पर कुछ आकर्षित करने के लिए, drawIconWithFrame: TIconAndTextCell विधि की विधि ओवरराइड होनी चाहिए।

विधि स्विजिंग के लिए यहां कोड दिया गया है:

 + (void) Plugin_load { Method old, new; Class self_class = [self class]; Class finder_class = [objc_getClass("TIconAndTextCell") class]; class_addMethod(finder_class, @selector(FT_drawIconWithFrame:), class_getMethodImplementation(self_class, @selector(FT_drawIconWithFrame:)),"v@:{CGRect={CGPoint=dd}{CGSize=dd}}"); old = class_getInstanceMethod(finder_class, @selector(drawIconWithFrame:)); new = class_getInstanceMethod(finder_class, @selector(FT_drawIconWithFrame:)); method_exchangeImplementations(old, new); } 

मेरी विधि "FT_drawIconWithFrame:" के साथ मैं "drawIconWithFrame:" विधि को ओवरराइड कर रहा हूं। नीचे इस विधि के लिए नमूना कार्यान्वयन है।

 - (void) FT_drawIconWithFrame:(struct CGRect)arg1 { [self FT_drawIconWithFrame:arg1]; if ([self respondsToSelector:@selector(node)]) { if ([[[[NSClassFromString(@"FINode") nodeWithFENode:[(TNodeIconAndNameCell *)self node]] fullPath] lastPathComponent] hasPrefix:@"A"]) [myPrettyIconOverlayImage drawInRect:NSMakeRect(arg1.origin.x, arg1.origin.y, arg1.size.height, arg1.size.height) fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; } } 

मूलतः यह फ़ाइल "I" अक्षर के साथ शुरू होने वाले फ़ाइल के साथ प्रत्येक आइकन के लिए "myPrettyIconOverlayImage" खींचती है यह तर्क आप पर निर्भर है

इस रेखा पर ध्यान दें: [self FT_drawIconWithFrame:arg1]; सामान्य आइकन और नाम आदि पाने के लिए यह 'सुपर' कहने का तरीका है। मुझे पता है, पाश की तरह अजीब लग रहा है, लेकिन वास्तव में यह नहीं है। फिर SIMBL प्लग इन में लपेटें, SIMBL इंस्टॉल करें और … चलाएं।

शेर में बदलाव के कारण कुछ काम खरोंच से किया जाना चाहिए (नई "खोजक।" फ़ाइल को उसमें आवश्यक सभी घोषणाओं के साथ करें, उचित कक्षाएं और ओवरराइड करने के तरीकों को खोजें), लेकिन यह तकनीक अब भी काम करती है।

हैकिंग हैप्पी!

योसेमाइट ( मैकओएस 10.10 और नए) के लिए, आप ऐप्पल के फाइंडर सिंक फ्रेमवर्क का उपयोग कर सकते हैं, जो कि फाइंडर एक्सटेंशन को इस प्रकार की अनुमति देता है:

  • विशिष्ट फ़ोल्डर पदानुक्रम में रुचि व्यक्त करें
  • उन पदानुक्रमों के भीतर वस्तुओं की स्थिति को इंगित करने के लिए "बैज" प्रदान करें
  • खोजकर्ता संदर्भ मेनू में डायनामिक मेनू आइटम प्रदान करें, जब चयनित आइटम (या विंडो लक्ष्य) उन पदानुक्रम में हैं
  • एक टूलबार आइटम प्रदान करें जो डायनामिक आइटम के साथ मेनू प्रदर्शित करता है (भले ही चयन असंबंधित है)

खोजकर्ता के लिए कोई आधिकारिक या समर्थित प्लग इन सिस्टम नहीं है ओएस एक्स 10.6 से शुरू करते हुए, आपको फाइंडर प्रोसेस में कोड इंजेक्षन करना होगा और फाइंडर प्रक्रिया में उद्देश्य सी विधियों को ओवरराइड करना होगा।

मैंने एक मालिकाना परियोजना के लिए यह किया है। मैं आपको बता सकता हूं कि इस कारण के लिए कोई उदाहरण या ट्यूटोरियल नहीं हैं, क्योंकि यह एक महत्वपूर्ण और कठिन समय-समय पर विकास कार्य है। इस कारण से, उन व्यक्तियों या संगठनों के लिए बहुत सारे प्रोत्साहन दिए गए हैं जिन्होंने इस प्रक्रिया को अपनी प्रक्रिया के बारीकी से संरक्षित करने के लिए पूरा किया है।

यदि किसी भी तरह से कोई भी तरीका है कि आप सेवा एपीआई का उपयोग करके अपने लक्ष्य को पूरा कर सकते हैं, तो ऐसा करें। फाइंडर प्लगइन को लिखने में आपको दृढ़तापूर्ण विकास के 1-2 ठोस महीनों और सी और उद्देश्य-सी इंटरनेशनल के काफी गहन ज्ञान मिलेंगे।

यदि आप अभी भी आश्वस्त हैं कि आप यह करना चाहते हैं, तो mach_star को पकड़ो। सौभाग्य।

जहाँ तक मुझे पता है, खोजकर्ता के लिए कोई आधिकारिक प्लगइन वास्तुकला नहीं है आप खोजकर्ता में हुक पाने के बिना किसी बाहरी एप्लिकेशन के माध्यम से छवि ओवरले को जोड़ने में सक्षम हो सकते हैं, हालांकि यह मक्खी पर नहीं होगा। मुझे नहीं लगता कि फ़ोल्डर्स एक्शन और ऑटोमेटेटर से प्रासंगिक मेनू आइटम को अलग करने का एक तरीका है। आप FSEvents API का उपयोग करके फ़ाइल सिस्टम परिवर्तनों को मॉनिटर करने के लिए बाहरी एप्लिकेशन लिखने में भी देख सकते हैं।

लेयस ने वर्णित तकनीकों का उपयोग करके शेर और माउंटेन शेर में फ़ाइंडर आइकन बैज और प्रासंगिक मेनू के लिए यहां एक पूरा समाधान दिया है

Liferay जन्म एक स्क्रीप्टिंग बंडल प्रदान करता है जो माउस और संदर्भ मेनू सेट करने के लिए संबंधित खोजकर्ता विधियों और जावा क्लाइंट को तेज करेगा। इसमें विंडोज और लिनक्स के समकक्ष परियोजनाएं शामिल हैं।

यह परियोजना एलजीपीएल के तहत खुला स्रोत है, इसलिए किसी भी बग फिक्स या सुधार में योगदान करने के लिए स्वतंत्र महसूस करें!

टुकड़े पतले हैं; यह मेरे लिए वास्तव में कभी स्पष्ट नहीं था कि क्या फ़्डरर प्लग इन वास्तव में समर्थित हैं। कुछ और सुराग, हालांकि:

  • SampleCMPlugIn – कार्बन-आधारित पाठ्यक्रम, चूंकि फाइंडर है। नोट करें कि लगभग किसी भी खोजक प्लगइन शायद 10.6 के साथ काम करना बंद कर रहा है।
  • स्वचालक चीज़ों को "फाइंडर प्लगइन" के रूप में सहेज सकते हैं। यह आप पर चर्चा कर रहे हैं का एक और अधिक समर्थित संस्करण है, लेकिन निश्चित रूप से कम लचीलापन

खोजकर्ता / फ़ाइल ब्राउज़र आइकन ओवरले और संदर्भ मेनू जोड़ने के लिए, क्रॉस-प्लेटफ़ॉर्म तरीके से, जावा से, Liferay Nativity पुस्तकालय पर एक नज़र डालें।

मैं इसके बारे में किसी अन्य SO पोस्ट में भी उल्लेख करता हूं, जिसमें एप्पल के 'फाइंडर सिंक' डॉक्स और एपीआई के लिंक शामिल हैं।