Ícones para tipos de arquivo são manipulados pelo Launch Services (o serviço que determina, entre outras coisas, qual aplicativo manipula um tipo de arquivo). O ícone do arquivo é sempre fornecido pelo aplicativo que gerencia a abertura de um arquivo por padrão. Dessa forma, por exemplo, a Visualização fornece ícones PDF por padrão e ícones PNG, mas se você alterar todos os arquivos PNG para abrir usando o Pixelmator, esses arquivos obterão um ícone no estilo Pixelmator posteriormente.
O que você precisa fazer é adicionar sua definição de tipo de arquivo ao aplicativo que a abre por padrão ou criar seu próprio aplicativo "fictício" para o tipo de arquivo .
Como exemplo, meu sistema ainda não conhece .scalae quero TextMatelidar com isso.
Primeiro, mostro o conteúdo do pacoteTextMate.app , navego Contents/e abro Info.plist, com um editor de texto ou Property List Editorparte das ferramentas de desenvolvedor da Apple.
O TextMate usa um formato incomum para Info.plist(geralmente é binário ou XML), cujo trecho se parece com isso:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
A chave dos pais CFBundleDocumentTypesé o que queremos. O primeiro elemento filho dele, entre chaves, contém uma definição de tipo de arquivo, completa com nome (para a coluna de tipo de arquivo no Finder), extensões de arquivo e o nome do arquivo de ícone ( ADApara TextMate.app/Contents/Resources/ADA.icns).
Para dar suporte .scala, precisamos adicionar um elemento irmão semelhante ao acima, sob o mesmo elemento pai CFBundleDocumentTypes:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
},
Por uma questão de simplicidade, estou usando o mesmo arquivo de ícone, mas podemos criar um nós mesmos, copiá-lo TextMate.app/Contents/Resources/SCALA.icnse consultá-lo como SCALAem Info.plist.
Agora, feche o TextMate, se estiver em execução, mova o aplicativo TextMate.apppara uma pasta diferente e abra-o novamente. Feche e mova-o para trás, depois abra-o novamente. Isso é feito para que o Launch Services capte as alterações Info.plistque acabamos de executar.
O resultado é semelhante a este (lembre-se, reutilizamos o ícone TextMate Ada para .scala):

Se você não deseja associar um aplicativo a abrir .scalaarquivos (não consegue imaginar o porquê, mas há uma maneira de fazer isso): Altere as adições ao arquivo para o seguinte:
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
CFBundleTypeRole = "None";
},
Agora, o aplicativo declara o tipo de arquivo, mas informa ao sistema que ele não sabe como manipulá-lo (a Apple fornece o exemplo do Finder que declara os tipos de fonte, embora não possa abri-los).
* Observe que qualquer atribuição permanente de aplicativo ao tipo de arquivo substitui o ícone, provavelmente do tipo "documento desconhecido".
Se você já possui um aplicativo associado .scalae deseja alterar o ícone do arquivo sem alterar o aplicativo associado:
Abra o aplicativo Info.plist, procure a entrada do tipo de arquivo CFBundleDocumentTypese obtenha o CFBundleTypeIconFile. Modifique este arquivo .../Contents/Resources/e ele deve ser refletido no Finder logo depois.
Informações sobre bônus:
Como alterar o ícone de um único documento ou pasta para um arquivo de imagem
Suponha que você tenha uma imagem na ~/Desktop/test.pngqual deseja usar um ícone (é a captura de tela usada acima para ilustrar a .scalaalteração do ícone / TextMate / Ada.
Abra /Applications/Utilities/Terminal.appe digite:
sips -i ~/Desktop/test.png
Isso mudará o test.pngícone do arquivo para sua imagem. Desde que eu gosto de recursão, vamos tentar o seguinte:
Antes, o pngícone de visualização simples (a visualização da imagem está desativada):

Depois, o próprio arquivo de imagem é sua visualização:

Agora podemos abrir a caixa de diálogo Obter informações do arquivo , clicar no ícone de documento futuro desejado no canto superior esquerdo, Cmd-Cpara copiá-lo, abrir a caixa de diálogo Obter informações do arquivo de documento , clicar no ícone de documento atual indesejado no canto superior esquerdo e Cmd-Vcolar o ícone que queremos.
Como alternativa, você pode abrir o arquivo de imagem que deseja usar como ícone na Visualização, Cmd-Apara selecionar tudo, Cmd-Cpara copiar a imagem para a área de transferência. Em seguida, abra a caixa de diálogo Obter informações do documento de destino , selecione o ícone para alterar no canto superior esquerdo e Cmd-Vcole a imagem sobre ele.