W Finder.app możesz nacisnąć przycisk, Enteraby edytować nazwę aktualnie wybranego pliku lub folderu.
OS X automatycznie wybierze tylko część nazwy pliku, a nie rozszerzenie:
Jest to bardzo przydatne, ponieważ w ten sposób możesz po prostu zacząć pisać nową nazwę, nie martwiąc się o przypadkową zmianę rozszerzenia pliku.
Jednak wydaje się, że działa to tylko w przypadku „znanych” typów plików. Jeśli spróbujesz z nieznanym rozszerzeniem, wybierana jest cała nazwa pliku (łącznie z rozszerzeniem):
Próbowałem mapować aplikację, która może otwierać wszystkie .bar
pliki za pomocą ⌘+ I→ „Zmień wszystko”, ale nadal otrzymuję zachowanie opisane powyżej.
Gdzie przechowywana jest lista „znanych” typów plików? Czy istnieje sposób, aby OS X rozpoznał nowe typy plików?
CFBundleTypeExtensions
jest starszym kluczem, który stał się przestarzały w OS X 10.5 . Preferowaną metodą od 2007 roku jest deklarowanie nowych UTI, jak wspomniano tutaj i opisano w mojej odpowiedzi .xxx.bar
i nie wybierzeszopen with
?UTI i usługi uruchamiania
Oficjalny termin „typy plików” to Uniform Type Identifiers (UTI), a baza danych UTI jest prowadzona przez Launch Services .
Za pomocą terminalu możesz przeglądać zawartość bazy danych Launch Services za pomocą
lsregister
narzędzia, które jest przechowywane w:Zamiast określać tę długą ścieżkę za każdym razem, gdy chcesz uruchomić
lsregister
, możesz tymczasowo dodać jej katalog doPATH
:a następnie możesz uruchomić
lsregister
, wpisując:Aby wyświetlić zawartość bazy danych Launch Services:
Deklarowanie nowych UTI
W tym artykule Apple „Deklarowanie nowych jednolitych identyfikatorów typów” podano przydatne informacje, jak to zrobić. Oto kompletny proces:
1. Utwórz aplikację zastępczą
Utwórz aplikację zastępczą, aby zarejestrować się w Launch Services:
2. Otwórz plik Info.plist
3. Dodaj nową UTI
Do wyboru są dwa klucze:
UTExportedTypeDeclarations
- dla własnych niestandardowych rozszerzeń plików.UTImportedTypeDeclarations
- dla rozszerzeń plików, które już istnieją, ale nie są rozpoznawane przez OS X.Wybierz klucz, który najlepiej odpowiada Twoim potrzebom.
Następnie w pliku Info.plist , przed ostatnimi dwoma liniami (
</dict></plist>
), dodaj ten kod:wprowadzanie następujących zmian:
KEY
na wybrany klucz (alboUTExportedTypeDeclarations
lubUTImportedTypeDeclarations
).IDENTIFIER
na odpowiedni identyfikator odwrotnego DNS:com.mycompany.mytype
com.idsoftware.wad
EXTENSION
na rozszerzenie nazwy pliku (bez kropki), npwad
. : .Jest to minimalny kod niezbędny do uruchomienia nowych usług UTI przez usługi uruchamiania. Możesz także dodać następujące opcjonalne właściwości:
UTTypeConformsTo
- Zobacz załącznik poniżej.UTTypeDescription
- Widoczny dla użytkownika opis, który zostanie wyświetlony w Finderze.UTTypeIconFile
- Jeśli dodasz plik Apple Icon Image do folderu Contents / Resources w aplikacji fikcyjnej i dodasz jego nazwę pliku do tej właściwości, pliki z nowym rozszerzeniem nazwy pliku będą używać tej ikony.UTTypeReferenceURL
- Adres URL dokumentu referencyjnego opisującego ten typ.Oto kompletny przykład pokazujący wszystkie opcjonalne właściwości:
4. Zarejestruj nowe UTI w Launch Services
Uruchom to polecenie w terminalu:
zamieniając
<PATH_TO_APP>
na ścieżkę do aplikacji zastępczej, np .:Jeśli teraz utworzysz plik z nowym rozszerzeniem nazwy pliku, a następnie wybierzesz go w Finderze i naciśniesz Enter, Finder powinien automatycznie wybrać tylko część nazwy pliku, a nie rozszerzenie.
Jeśli przeglądasz zawartość bazy danych Launch Services:
powinieneś znaleźć swoje nowe UTI na liście:
Jeśli później chcesz wyrejestrować nowy interfejs użytkownika, przekaż
-u
opcjęlsregister
:Dodatek: Hierarchia i zgodność UTI
OS X deklaruje hierarchię UTI wymienionych tutaj: Deklarowane przez system jednolite identyfikatory typu .
Oto kilka interfejsów użytkownika w hierarchii:
public.content
public.text
public.rtf
public.html
public.xml
public.plain-text
public.source-code
public.c-source
public.c-header
com.sun.java-source
public.image
public.jpeg
public.tiff
public.png
public.audiovisual-content
public.movie
public.audio
Każde UTI „odpowiada” jego macierzystemu UTI:
Podczas tworzenia nowego interfejsu użytkownika dobrym pomysłem jest ustawienie tej
UTTypeConformsTo
właściwości na jedną z istniejących interfejsów użytkownika.Na przykład, jeśli nowy UTI jest rodzajem kodu źródłowego, a następnie należy ustawić
UTTypeConformsTo
właściwośćpublic.source-code
, dzięki czemu można go otworzyć za pomocą wszelkich aplikacji, które można otwieraćpublic.source-code
lubpublic.plain-text
lubpublic.text
plików.źródło
Wykonaj następujące kroki:
Wybierz plik z nierozpoznanym rozszerzeniem (powiedzmy
.txt
).Kliknij prawym przyciskiem myszy i wybierz
Get Info
lub użyj skrótu klawiaturowego, Commandiaby wyświetlić okno informacyjne.Kliknij wskaźnik ujawnienia oprócz Otwórz za pomocą:, aby otworzyć widok szczegółowy. Wybierz żądaną aplikację z menu rozwijanego. Spowoduje to powiązanie dokumentu z wybraną aplikacją (np. TextEdit).
Kliknij na ... zmień Wszystkie przycisku. Najpierw wyświetli się okno dialogowe z prośbą o potwierdzenie zamiaru i połączy wszystkie
.txt
dokumenty, które mają zostać otwarte za pomocą TextEdit, a rozszerzenie pozostawi niezaznaczone po naciśnięciu klawisza return na nazwie dokumentu.źródło