Os aplicativos do Mac OS X que são criados usando o Xcode tiveram sua GUI comumente projetada usando o Interface Builder (agora integrado no Xcode 4).
As definições da GUI são armazenadas em arquivos com a extensão .nib
e no diretório Contents/Resources
do pacote de aplicativos finalizado. Esses arquivos podem ser editados usando o Interface Builder, pois não são compilados da mesma maneira que os arquivos de código fonte.
O exemplo a seguir edita o arquivo de definição About window do Reeder , um leitor comercial RSS / ATOM.
É Reeder.app/Contents/Resources/About.nib
. Se abrirmos este arquivo no Interface Builder, ele não será exibido. Por algum tempo, .nib
arquivos são distribuídos em um formulário "compilado", talvez porque editá-los era muito difundido.
Para poder editar os arquivos .nib
, precisamos "descompilá-los" usando, por exemplo, este programa chamado NibDecompiler . Faça o download e copie o arquivo NibDecompiler.workflow
para ~/Library/Services
. Agora haverá uma entrada do menu de contexto NibCompiler nos arquivos que podemos usar para tornar editáveis os arquivos .nib
.
CrieumacópiadoReeder.app/Contents/Resources/About.nib
deReedernasuaáreadetrabalho,"decompile" do seu menu de contexto e abra-o no Interface Builder ou no Xcode 4.
Agoravocêpodeeditar,porexemplo,orótuloquecontémonomedoprograma.SalveesubstituaoarquivooriginalnopacotedeaplicativosReeder.LançarReederevejaporsimesmo:
Podemos ver claramente no editor que nem tudo é projetado no Interface Builder. Alguns aplicativos podem criar sua UI inteira no código e não precisam de .nib
de arquivos. Outros criam apenas as partes mais elaboradas de algumas janelas no código. Só podemos editar usando essa abordagem o que foi projetado nos arquivos .nib
.
Isso significa que você pode redimensionar as janelas definidas nesses arquivos:
Mas se o conteúdo deles for criado de forma programática, não se decepcione se os desenvolvedores não desenvolverem suas alterações e, por exemplo, quebra de layout.
A edição de recursos interromperá a assinatura de código, que é usada para a autenticação do OS X Firewall e, AFAIK, Keychain (para permitir acesso após as atualizações do aplicativo automaticamente).
Como alguns aplicativos carregam o .nib
e, em seguida, executam algumas alterações adicionais (por exemplo, inserindo o número da versão na caixa de diálogo Sobre), é possível que você realmente quebre algumas funcionalidades ao fazer isso. Você provavelmente não deveria fazer isso, na verdade; -)