Ikony typów plików są obsługiwane przez usługi uruchamiania (usługa określająca między innymi, która aplikacja obsługuje typ pliku). Ikona pliku jest zawsze dostarczana przez obsługę aplikacji domyślnie otwierającą plik. W ten sposób np. Preview udostępnia domyślnie ikony PDF i ikony PNG, ale jeśli zmienisz wszystkie pliki PNG, aby otworzyć je za pomocą Pixelmator, pliki te otrzymają później ikonę w stylu Pixelmator.
To, co musisz zrobić, to dodać definicję typu pliku do aplikacji, która ją domyślnie otwiera, lub utworzyć własną „obojętną” aplikację dla tego typu pliku .
Na przykład mój system jeszcze nie wie .scalai chcę TextMatesobie z tym poradzić.
Najpierw Pokaż Zawartość opakowania z TextMate.appprzejdź do Contents/i otwarte Info.plist, albo za pomocą edytora tekstu, lub Property List Editor, część narzędzi Apple'a deweloperskich.
TextMate używa nietypowego formatu Info.plist(zazwyczaj binarnego lub XML), którego fragment wygląda następująco:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
Klucz nadrzędny CFBundleDocumentTypesjest tym, czego chcemy. Pierwszy element potomny, zawarty w nawiasach klamrowych, zawiera definicję typu pliku wraz z nazwą (dla kolumny typu pliku w Finderze), rozszerzeniami plików i nazwą pliku ikony ( ADAdla TextMate.app/Contents/Resources/ADA.icns).
Aby wesprzeć .scala, musimy dodać element siostrzany podobny do powyższego, w ramach tego samego elementu nadrzędnego CFBundleDocumentTypes:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
},
Dla uproszczenia używam tego samego pliku ikon, ale możemy go sami stworzyć, skopiować go TextMate.app/Contents/Resources/SCALA.icnsi odwołać się do niego jak SCALAw Info.plist.
Teraz zamknij TextMate, jeśli jest uruchomiony, przenieś aplikację TextMate.appdo innego folderu i otwórz go ponownie. Zamknij i przesuń z powrotem, a następnie otwórz ponownie. Dokonuje się tego, więc usługi uruchamiania wychwytują zmiany, Info.plistktóre właśnie wykonaliśmy.
Wynik wygląda następująco (pamiętaj, że ponownie użyliśmy ikony TextMate Ada .scala):

Jeśli nie chcesz kojarzyć aplikacji z otwartymi .scalaplikami (nie wyobrażasz sobie, dlaczego, ale jest na to sposób): Zmień dodatki do pliku na następujące:
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
CFBundleTypeRole = "None";
},
Teraz aplikacja deklaruje typ pliku, ale informuje system, że nie wie, jak sobie z tym poradzić (Apple podaje przykład Findera deklarującego typy czcionek, chociaż sam nie może ich otworzyć).
* Uwaga: każde trwałe przypisanie aplikacji do typu pliku zastępuje ikonę, prawdopodobnie do rodzaju „nieznanego dokumentu”.
Jeśli masz już powiązaną aplikację .scalai po prostu chcesz zmienić ikonę pliku bez zmiany powiązanej aplikacji:
Otwórz aplikację Info.plist, poszukaj wpisu typu pliku CFBundleDocumentTypesi pobierz CFBundleTypeIconFile. Zmodyfikuj ten plik, .../Contents/Resources/a wkrótce potem powinien zostać odzwierciedlony w Finderze.
Informacje o bonusie:
Jak zmienić ikonę pojedynczego dokumentu lub folderu na plik obrazu
Załóżmy, że masz obraz, ~/Desktop/test.pngktórego chcesz użyć ikony (to zrzut ekranu użyty powyżej, aby zilustrować .scalazmianę ikony / TextMate / Ada.
Otwórz /Applications/Utilities/Terminal.appi wprowadź:
sips -i ~/Desktop/test.png
Spowoduje to zmianę test.pngikony pliku na obraz. Ponieważ lubię rekurencję, spróbujmy tego:
Wcześniej zwykła pngikona podglądu (podgląd obrazu jest wyłączony):

Następnie sam plik obrazu jest jego podglądem:

Teraz możemy otworzyć okno dialogowe Pobierz informacje o pliku , kliknąć żądaną ikonę przyszłego dokumentu w lewym górnym rogu, Cmd-Caby ją skopiować, otworzyć okno dialogowe Pobierz informacje o pliku , kliknąć niepożądaną, bieżącą ikonę dokumentu w lewym górnym rogu i Cmd-Vwkleić ikona, którą chcemy.
Alternatywnie możesz otworzyć plik obrazu, którego chcesz użyć jako ikony w Podglądzie, Cmd-Aaby wybrać wszystko, Cmd-Caby skopiować obraz do schowka. Następnie otwórz okno dialogowe Uzyskaj informacje w dokumencie docelowym , wybierz ikonę, którą chcesz zmienić w lewym górnym rogu, i Cmd-Vwklej nad nią obraz.