No Finder.app, você pode clicar Enterpara editar o nome do arquivo ou pasta selecionado no momento.
O OS X selecionará automaticamente apenas a parte do nome do arquivo, não a extensão:
Isso é muito útil, pois assim você pode simplesmente começar a digitar o novo nome, sem se preocupar em alterar acidentalmente a extensão do arquivo.
No entanto, isso parece funcionar apenas para tipos de arquivos "conhecidos". Se você tentar com uma extensão desconhecida, o nome completo do arquivo (incluindo a extensão) será selecionado:
Tentei mapear um aplicativo que pode abrir todos os .bar
arquivos via ⌘+ I→ "Alterar tudo", mas ainda assim recebo o comportamento descrito acima.
Onde está armazenada a lista de tipos de arquivos "conhecidos"? Existe uma maneira de fazer o OS X reconhecer novos tipos de arquivo?
CFBundleTypeExtensions
é uma chave herdada que foi descontinuada no OS X 10.5 . O método preferido desde 2007 é declarar novas UTIs, como mencionado aqui e descrito na minha resposta .xxx.bar
e selecionaopen with
?UTIs e serviços de lançamento
O termo oficial para "tipos de arquivos" é UTIs ( Uniform Type Identifiers ) e o banco de dados de UTIs é mantido pelos Serviços de Inicialização .
Usando o Terminal , você pode visualizar o conteúdo do banco de dados dos Serviços de Inicialização usando a
lsregister
ferramenta, armazenada em:Em vez de especificar esse caminho longo toda vez que você deseja executar
lsregister
, você pode adicionar temporariamente o diretório ao seuPATH
:e então você pode executar
lsregister
simplesmente digitando:Para visualizar o conteúdo do banco de dados do Launch Services:
Declarando novas UTIs
Este artigo da Apple, "Declarando novos identificadores de tipo uniforme" , fornece informações úteis sobre como fazer isso. Aqui está o processo completo:
1. Crie um aplicativo fictício
Crie um aplicativo fictício para se registrar no Launch Services:
2. Abra o arquivo Info.plist
3. Adicione sua nova UTI
Há uma escolha de duas chaves:
UTExportedTypeDeclarations
- para suas próprias extensões de nome de arquivo personalizadas.UTImportedTypeDeclarations
- para extensões de nome de arquivo que já existem, mas não são reconhecidas pelo OS X.Escolha a chave mais adequada às suas necessidades.
Em seguida, no arquivo Info.plist , antes das duas linhas finais (
</dict></plist>
), adicione este código:fazendo as seguintes alterações:
KEY
pela chave escolhida (UTExportedTypeDeclarations
ouUTImportedTypeDeclarations
).IDENTIFIER
por um identificador DNS reverso adequado:com.mycompany.mytype
com.idsoftware.wad
EXTENSION
com a extensão de nome de arquivo (sem o ponto inicial), por exemplo:wad
.Esse é o código mínimo necessário para o Launch Services aceitar sua nova UTI. Você também pode adicionar as seguintes propriedades opcionais:
UTTypeConformsTo
- Veja o apêndice abaixo.UTTypeDescription
- Uma descrição visível ao usuário, que será exibida no Finder.UTTypeIconFile
- Se você adicionar um arquivo de imagem de ícone da Apple à pasta Conteúdo / Recursos em seu aplicativo fictício e adicionar seu nome de arquivo nessa propriedade, os arquivos com a nova extensão de nome de arquivo usarão esse ícone.UTTypeReferenceURL
- O URL de um documento de referência que descreve esse tipo.Aqui está um exemplo completo mostrando todas as propriedades opcionais:
4. Registre sua nova UTI com o Launch Services
Execute este comando no terminal:
substituindo
<PATH_TO_APP>
pelo caminho para seu aplicativo fictício, por exemplo:Se você agora criar um arquivo com sua nova extensão de nome de arquivo e selecioná-lo no Finder e clicar em Enter, o Finder deverá selecionar automaticamente apenas a parte do nome do arquivo, não a extensão.
Se você visualizar o conteúdo do banco de dados do Launch Services:
você deve encontrar sua nova UTI listada:
Se posteriormente você deseja cancelar o registro de sua nova UTI, passe a
-u
opção paralsregister
:Apêndice: Hierarquia e conformidade da UTI
O OS X declara uma hierarquia de UTIs listadas aqui: Identificadores de tipo uniforme declarados pelo sistema .
Aqui estão algumas UTIs na hierarquia:
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
Cada UTI "está em conformidade com" sua UTI principal:
Ao criar uma nova UTI, é uma boa ideia definir a
UTTypeConformsTo
propriedade para uma das UTIs existentes.Por exemplo, se sua nova UTI for um tipo de código-fonte, defina a
UTTypeConformsTo
propriedade comopublic.source-code
, para que ela possa ser aberta por qualquer aplicativo que possa abrirpublic.source-code
oupublic.plain-text
oupublic.text
arquivos.fonte
Siga esses passos:
Selecione o arquivo com extensão não reconhecida (por exemplo,
.txt
).Clique com o botão direito e selecione
Get Info
ou use o atalho do teclado Commandipara exibir a janela de informações.Clique no indicador de divulgação ao lado de Abrir com: para abrir a exibição detalhada. Selecione o aplicativo desejado na lista suspensa. Isso associará o documento ao aplicativo escolhido (por exemplo, TextEdit).
Clique no botão Alterar tudo .... Ele primeiro mostrará uma caixa de diálogo solicitando a confirmação de sua intenção e vinculará todos os
.txt
documentos a serem abertos com o TextEdit, deixando a extensão desmarcada quando você clicar em retornar no nome do documento.fonte