2009-09-04 15 views
12

उद्देश्य-सी और कोको का उपयोग करके, क्या किसी को पता है कि उपयोगकर्ता के कंप्यूटर के लिए आइकन कैसे प्राप्त करें (वह जो "डिवाइस" और "नेटवर्क" के अंतर्गत खोजक में दिखाता है)? हार्डडिस्क आइकन नहीं, उपयोगकर्ता के डिवाइस के लिए वास्तविक एक। यह मैकबुक आइकन से मैक प्रो आइकन तक मौत मॉनिटर आइकन की विंडोज नीली स्क्रीन पर है।मैं उपयोगकर्ता के मैक का आइकन कैसे प्राप्त करूं?

मैं निम्नलिखित लाइनों के साथ सामान की कोशिश की है:

NSImage *icon = [[NSWorkspace sharedWorkspace] 
        iconForFileType: NSFileTypeForHFSTypeCode(kComputerIcon)]; 

लेकिन वह सिर्फ एक ही आइकन हर समय देता है, जाहिर है। मैंने iconForFile: विधि भी कोशिश की है लेकिन मुझे पैरामीटर के रूप में उपयोग करने के लिए फ़ाइल पथ के बारे में पता नहीं है। क्या कोई मुझे सही दिशा में निर्देशित कर सकता है?

+3

+1 कम से कम पहले इसे स्वयं करने का प्रयास करें। – Abizern

उत्तर

27
[NSImage imageNamed: NSImageNameComputer] 

यह वर्तमान कंप्यूटर

+3

शानदार! क्या इन "नामित" छवियों के लिए अन्य तारों या स्थिरांक की एक सूची है? –

+1

नामित छवियों की पूरी सूची एनएसआईमेज दस्तावेज़ में पाई जा सकती है। इसके अलावा, रिकॉर्ड के लिए, आपको शायद शाब्दिक @ "एनएससीओम्प्यूटर" की बजाय निरंतर एनएसआईमेजनाम कंप्यूटर का उपयोग करना चाहिए, क्योंकि निरंतर वह है जो वास्तव में सार्वजनिक एपीआई के रूप में उजागर होता है। –

+2

शाब्दिक को निरंतर बदल दिया। यहां सभी स्थिरांक की सूची http://tinyurl.com/m5qcl5 – cocoafan

5

के आइकन वापस आ जाएगी आप देख रहे हैं किसी भी अन्य सिस्टम आइकन को एप्पल के नमूना "IconCollection" कहा जाता है परियोजना की जाँच के लिए। http://developer.apple.com/mac/library/samplecode/IconCollection/listing5.html

नमूना एक प्लेलिस्ट फ़ाइल के साथ आता है जिसमें बहुत से सिस्टम आइकन के लिए नाम और कोड हैं जिनका उपयोग करके उपयोग किया जा सकता है;

OSType code = UTGetOSTypeFromString((CFStringRef)codeStr); 
NSImage *picture = [[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(code)]; 

जहां codeStr icons.plist में प्रदान की जाती आइकन के लिए स्ट्रिंग कोड है

+1

अब https://developer.apple.com/library/mac/#samplecode/IconCollection/Introduction/Intro.html पर –

7

प्रतीक देखने के लिए एक और जगह:

/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources 

आप NSImage वहाँ में फ़ाइलों के साथ वस्तुओं की तरह बना सकते हैं यह:

[[NSImage alloc] initWithContentsOfFile:@"/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.macbook-unibody.icns"]; 

शायद यह मूल्य li को हार्ड-कोड करने की अनुशंसा नहीं की जाती है केई, हालांकि, चूंकि ऐप्पल आइकन के स्थान बदल सकता है। वहाँ है कि इस तरह 'kToolbarDesktopFolderIcon' जो इस प्रकार किया जा सकता है के रूप में कई अन्य निरंतर मान हैं एक फ़ाइल IconsCore.h कहा जाता है:

[[NSWorkspace sharedWorkspace] iconForFileType: NSFileTypeForHFSTypeCode(kToolbarDesktopFolderIcon)]; 

मेरा मानना ​​है कि इन स्थिरांक केवल, हालांकि हिमपात तेंदुए में काम करते हैं।

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