Ответ 1
[NSImage imageNamed: NSImageNameComputer]
Это вернет значок текущего компьютера
Используя Objective-C и Cocoa, кто-нибудь знает, как получить значок для пользовательского компьютера (тот, который отображается в разделе "Устройства" и "Сеть" в Finder)? Не значок жесткого диска, а фактический для пользовательского устройства. Он варьируется от значка MacBook до значка Mac Pro до значка монитора монитора голубого экрана Windows.
Я пробовал вещи по следующим строкам:
NSImage *icon = [[NSWorkspace sharedWorkspace]
iconForFileType: NSFileTypeForHFSTypeCode(kComputerIcon)];
Но это просто возвращает все тот же значок все время, очевидно. Я также пробовал метод iconForFile:
, но я не знаю, какой путь к файлу использовать в качестве параметра. Может ли кто-нибудь указать мне в правильном направлении?
[NSImage imageNamed: NSImageNameComputer]
Это вернет значок текущего компьютера
Другое место для поиска значков:
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources
Вы можете создавать объекты NSImage с файлами там:
[[NSImage alloc] initWithContentsOfFile:@"/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.macbook-unibody.icns"];
Скорее всего, не рекомендуется жестко закодировать такое значение, поскольку Apple может изменить расположение значков. Существует файл с именем IconsCore.h, который содержит много других константных значений, таких как 'kToolbarDesktopFolderIcon', которые можно использовать следующим образом:
[[NSWorkspace sharedWorkspace] iconForFileType: NSFileTypeForHFSTypeCode(kToolbarDesktopFolderIcon)];
Я считаю, что эти константы работают только в Snow Leopard.
Если вы ищете какие-либо другие значки системы, проверьте проект Apple sample под названием "IconCollection". http://developer.apple.com/mac/library/samplecode/IconCollection/listing5.html
Образец поставляется с файлом plist, который имеет имена и коды для довольно многих значков системы, к которым можно получить доступ, используя
OSType code = UTGetOSTypeFromString((CFStringRef)codeStr);
NSImage *picture = [[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(code)];
где codeStr - это строковый код для значка, представленного в icons.plist