Recursos ocultos do Xcode

Com um enorme instream de novatos para o Xcode, tenho certeza de que há muitas dicas e truques do Xcode para serem compartilhados.

Que são seus

Alternar para o header / arquivo de origem

  • Opção ⌥ Comando ⌘ Seta para cima ↑

  • Exibir > Mudar para o header / arquivo de origem

Alterna entre os arquivos .m e .h .

  • No Xcode 4, este é o comando ctrl Seta para cima ↑

⌘ Comando + Double-Click on a symbol : pule para a definição de um símbolo.

⌥ Opção + Double-Click on a symbol : Localizar texto na documentação de um símbolo. (Só funciona se você tiver o conjunto de documentos do símbolo instalado.)

Barra de Favoritos:

Barra de favoritos é como você tem no Safari para armazenar – bem – favoritos. Eu costumo usá-lo como um lugar para armazenar atalhos (que você pode fazer arrastando-soltando) para os arquivos que estou usando agora. Geralmente isso é mais útil quando estou trabalhando com um projeto grande ou desconhecido.

Para mostrar a Barra de Favoritos, selecione a seguinte opção de menu:

  • View > Layout > Show Favorites Bar

Atalhos de teclado de preenchimento automático

Tabulação ⇥ OU Controle ⌃ / : Selecione o próximo argumento de conclusão automática.

Shift ⇧ Tab ⇥ OU Shift ⇧ Control ⌃ / : Selecione o argumento de preenchimento automático anterior.

Escape ⎋ : mostra a lista instantânea de conclusão automática.

Desativar o aviso “desfazer o último ponto”

Quando você tentar desfazer após salvar, você receberá o seguinte aviso:

“Você está prestes a desfazer o último ponto em que esse arquivo foi salvo. Deseja fazer isso?”

Para se livrar desse aviso, digite o seguinte em uma janela de terminal:

 defaults write com.apple.Xcode XCShowUndoPastSaveWarning NO 

Alterar o nome da empresa em arquivos de modelo

Cole isso no aplicativo Terminal:

 defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME" = "Microsoft";}' 

Altere ” com.yourcompanyname ” em todos os seus modelos:

  1. Encontre o diretório: /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application
  2. Use sua ferramenta favorita de pesquisa e substituição de vários arquivos para alterar com.yourcompany para qualquer valor que você normalmente usa para criar um dispositivo. Eu usei o multi-find-and-replace do BBEdit depois que abri o diretório inteiro. Você deve estar substituindo o valor em todos os arquivos info.plist . Eu encontrei 8 arquivos para mudar. O número de vezes que uma compilation falhou porque esqueci de alterar essa string é ridículo.

Saltar rapidamente para um grupo no painel Grupos e arquivos

  • Controle ⌃ Opção ⌥ Shift ⇧ +

Se você segurar as três teclas acima, poderá pular rapidamente para grupos na página esquerda (Grupos e Arquivos) pressionando a primeira letra do nome de um grupo. Por exemplo, Controle ⌃ Opção ⌥ Shift ⇧ T leva você para Alvos e Controle ⌃ Opção ⌥ Deslocar ⇧ S para Fonte . Pressione novamente e salta para SCM. Às vezes é preciso várias tentativas para isso funcionar (não sei por quê).


Ciclismo entre as opções de preenchimento automático

  • Controle ⌃ .

  • Deslocamento ⇧ Controle ⌃ . : Retrocede entre as opções de preenchimento automático.

Controle ⌃ . (Período de controle) após uma palavra aceitar automaticamente a primeira opção no menu de auto-completar. Tente digitar log depois Control ⌃ . e você receberá uma declaração NSLog . Pressione novamente para percorrer as opções. Para ver todas as opções mutáveis, digite NSMu depois Control ⌃ . .


Ajuda Rápida

  • Controle ⌃ Comando ⌘ ? (Enquanto o cursor estiver no símbolo para procurar)

  • Opção ⌥ +

  • Ajuda> Ajuda Rápida

Para acessar a documentação na janela Ajuda rápida, clique no ícone de livro no canto superior direito.


Veja a documentação para um símbolo

  • Comando ⌘ Opção ⌥ +

Leva você diretamente para a documentação completa.


Faça seleções de texto não adjacentes

  • Comando ⌘ Controle ⌃ +

Use o atalho acima para uma maneira estranha de selecionar várias palavras. Você pode fazer seleções de palavras em lugares totalmente diferentes e, em seguida, excluí-las ou copiá-las todas de uma vez. Não tenho certeza se isso é útil. É apenas o Xcode, tanto quanto eu posso dizer.


Use os atalhos de teclado do Emacs para navegar pelo seu código

Este truque funciona em todos os aplicativos Cocoa no Mac (TextEdit, Mail, etc.) e é possivelmente uma das coisas mais úteis para se conhecer.

  • Comando ⌘ Seta para a esquerda ou Comando ⌘ Seta para a direita Leva você ao início e ao fim de uma linha.
  • Controle e Controle Faça o mesmo
  • Controle ^ n e Controle ^ p Mova o cursor para cima ou para baixo em uma linha.
  • Control ^ f e Control ^ b Mover o cursor para trás ou avançar um espaço

Pressionar Shift ⇧ com qualquer um deles seleciona o texto entre os pontos de movimento. Coloque o cursor no meio de uma linha e pressione Shift ⇧ Control ^ e você pode selecionar o final da linha.

Pressionar Option ⌥ permitirá que você navegue pelas palavras com o teclado. Opção ⌥ Controle ^ f pula para o final da palavra atual. Opção ⌥ Controle ^ b pula para o começo da palavra atual. Você também pode usar a opção ⌥ com as teclas de seta para a esquerda e para a direita para mover uma palavra de cada vez.

  • Controle ^ Seta para a Esquerda e Controle ^ Seta para a Direita move o cursor entre as partes do corpo de uma palavra.

Experimente com NSMutableArray . Você pode mudá-lo rapidamente para NSArray colocando o cursor após o NS , pressionando Shift ⇧ Control ^ Right Arrow e depois Delete .

Abra rapidamente …

  • Comando ⌘ Shift ⇧ D

  • Arquivo > Abrir rapidamente …

Sou um grande fã do recurso Open Quickly , que é particularmente bom no Xcode 3.1 e posterior. Quando você quiser abrir um arquivo ou uma definição de símbolo que esteja em seu projeto ou em uma estrutura, apenas ative o atalho de teclado, digite um bit do arquivo ou nome do símbolo, use Seta para Cima ↓ e Seta para Baixo ↓ para escolher o resultado correto (se necessário) e, em seguida, pressione Return ↩ para abrir o arquivo ou navegar até a definição do símbolo.

No Xcode 4:

  • Comando ⌘ Shift ⇧ o

Abrir rapidamente usa a palavra atual como um termo de pesquisa

Além disso, algo que eu não sabia sobre o Xcode até dois minutos atrás (quando schwa o apontou em um comentário) é que, se o texto do editor estiver dentro de uma palavra quando o Open Quickly for invocado, essa palavra será usada como Abra rapidamente o termo de pesquisa.

Use #pragma para organização

Você pode usar:

 #pragma mark Foo 

… como uma maneira de organizar methods em seus arquivos de origem. Ao navegar por símbolos através do menu pop-up, o que você colocar no Foo aparecerá em negrito na lista.

Para exibir um separador (isto é, linha horizontal), use:

 #pragma mark - 

É muito útil, especialmente para agrupar methods delegates ou outros grupos de methods.

1. Ponto de interrupção em “objc_exception_throw”

Você sempre deve ter um ponto de interrupção em objc_exception_throw .

2. Depuração reter / liberar problemas com variables ​​”Zombie”

Use o seguinte código:

 NSZombieEnabled = YES; NSDeallocateZombies = NO; 

… para depurar reter e liberar problemas. Para obter mais informações, consulte a seção “Encontrando vazamentos de memory” do documento de aplicativos de debugging da Apple .

3. Saltar para uma class no Xcode do Interface Builder

Comando ⌘ + Double-click em um object na Janela de documento do Interface Builder para pular para essa class no Xcode. Isso é muito útil com o proprietário do arquivo .

4. Reutilizando objects customizados no Interface Builder

Arraste um object personalizado de volta para a Biblioteca do Interface Builder para reutilização posterior.

5. Selecione itens sobrepostos no Interface Builder

Control ⌃ Shift ⇧ + Click em um object no Interface Builder para ver um menu de todos os objects sob o mouse.

6. Guia do Gestor de Interface Builder

Guia de Gestos do Construtor de Interface .

Ctrl + 2 : acessa a lista pop-up de methods e símbolos no arquivo atual.

Isso é super útil porque com este atalho você pode navegar através de um arquivo usando o teclado. Quando chegar à lista, comece a digitar os caracteres e a lista selecionará o símbolo que você está procurando.

Zoom Editor In

Se a sua janela exibir os detalhes e a visualização do editor, você poderá ampliar o editor para expandir a visualização do editor até a altura total da janela. (Isso é facilmente encontrado, mas muitos parecem ignorá-lo.)

Você pode fazer isso usando um dos seguintes methods:

  • Comando ⌘ Shift ⇧ E

  • Visualizar > Zoom Editor In

  • Arraste o divisor (entre a janela do editor e a lista de arquivos acima) para cima.

Obtenha a Lista de atalhos de teclado completa do Xcode da Colin Wheeler (disponível em PDF ou PNG). Imprimi-lo e mantê-lo em algum lugar visível (eu tenho na parede ao lado da minha canvas).

edit: Versões atualizadas do Xcode 3.2

edit 2: Versões atualizadas do Xcode 4

Não há muito de um atalho de teclado, mas os comentários TODO na fonte aparecem na lista suspensa método / function na parte superior do editor.

Então, por exemplo:

 // TODO: Some task that needs to be done. 

aparece na lista suspensa de methods e funções para que você possa acessar diretamente.

A maioria dos IDEs Java mostra um marcador para essas tags de tarefas na barra de rolagem, o que é melhor, mas isso também funciona.

⌘- [e ⌘-] para recuar e selecionar o texto selecionado. Facilita a limpeza do código-fonte.

Segure Option ao dividir as janelas para dividir verticalmente em vez de horizontalmente.

Clique duas vezes nos colchetes ou parênteses para obter correspondência entre colchetes e parênteses.

Controlar o editor de texto do Xcode a partir da linha de comando: xed

 > xed -x # open a new untitled document > xed -xc foo.txt # create foo.txt and open it > xed -l 2000 foo.txt # open foo.txt and go to line 2000 # set Xcode to be your EDITOR for command line tools # eg for subversion commit > echo 'export EDITOR="xed -wcx"' >> ~/.profile > man xed # there's a man page, too 

“Ctrl + Left / Right Arrow” para navegação de texto intra-word. Eu uso esse recurso para pular o cursor de uma “corcova de camelo” em uma variável para a próxima.

O Xcode suporta macros de texto que podem ser invocadas através do menu Inserir macro de texto no final do menu Editar . Eles também podem ser invocados usando Code Sense, a tecnologia de conclusão de código do Xcode.

Por exemplo, Digitar o pim control-period sequência de chaves inserirá #import "file" em seu código, com o file como um token editável, assim como com o preenchimento de código.

Clique com o botão direito do mouse em uma variável em sua function e clique em editar tudo no escopo. Estive usando muito desde que descobri isso.

ctrl T

Você pode fazer com que o Xcode execute o pré-processador em seu arquivo Info.plist:

          CFBundleShortVersionString 
     #ifdef DEBUG
          1.0 (debugging) 
     #outro
          1,0 
     #fim se

Veja http://developer.apple.com/technotes/tn2007/tn2175.html para detalhes.

Depuração – como usar o GDB

Sendo novo para isso ainda, acho armadilha e identificando falhas um trabalho bastante assustador. O console, apesar de ser uma ferramenta poderosa, geralmente não produz resultados muito intuitivos e saber o que você está vendo no depurador pode ser igualmente difícil de entender. Com a ajuda de alguns deles no Stack Overflow e o bom artigo sobre debugging que pode ser encontrado no Cocoa With Love , torna-se um pouco mais amigável.

Navegue entre os arquivos abertos para frente e para trás:
← ←
⌥⌘ →

Tecnicamente uma dica de Interface Builder, mas eles são um par de correspondência de livro, então eu não acho que isso está fora do assunto …

Shift + Right Clique em um de seus controles e você terá uma boa lista de seleção da hierarquia de objects. Não mais clique, clique, clique em frustração!

Com o Trackpad:

  • Swipe Three Fingers Up – Alterne entre o header e o arquivo de origem, o que é mais fácil do que o Cmd + Opt + Up ;
  • Deslize três dedos para baixo – alterne entre declaração e definição ao selecionar uma class ou um método, encontrei esses dois tipos atualmente;
  • Passe três dedos para a esquerda – Voltar ( Cmd + Opt + Left );
  • Passe três dedos para a direita – siga em frente ( Cmd + Opt + Right );

Testado com o Xcode 3.2.5.

O navegador de classs no Xcode! Alcançado pressionando shift + + c . Você pode reduzir o escopo para mostrar apenas seu projeto ativo. Ele oferece uma visão menos desordenada, desde que você queira apenas navegar na hierarquia de classs.

Usando ] para inserir automaticamente [ no local correto

Eu venho de um fundo .NET, então estou acostumado a digitar um símbolo e depois digitar um dos seus nomes de método. Então eu sempre esqueço de include o [ antes de começar a digitar o nome do object. Geralmente isso significava que eu precisaria ir para o início da linha e adicionar o [ manualmente. Eu não sabia que eu poderia apenas pressionar ] na posição atual do cursor, e ele será adicionado automaticamente.

Há maneiras de usar isso: depois de digitar o nome da function ou antes de digitar o nome da function.

Método 1: após o nome da function

myObject testMethod ]

… torna-se:

 [myObject testMethod] 

… com o cursor posicionado após o ] .

Método 2: antes do nome da function

myObject ]

… torna-se:

 [myObject ] 

… com o cursor posicionado logo antes do ] .

A vantagem do último (2) é que o preenchimento de código irá filtrar os methods do seu object. Considerando que, com o primeiro (1), se você tentar invocar o preenchimento de código imediatamente após myObject , ele não será filtrado. Outra vantagem para (2) é se comportar mais como outras linguagens de programação que usam notação de ponto. Você digita o nome do object e simplesmente ] em vez de . para acessar um método.

Selecione um bloco de texto e digite cmd- / para comentar. Faça isso novamente para remover os caracteres de comentários.

Isso é especialmente útil quando combinado com a correspondência de chaves, clicando duas vezes em caracteres balanceados (parênteses, chaves, colchetes).

Ser capaz de ver rapidamente todos os methods que podem ser anulados de uma superclass. Por exemplo, ao estender o UITableViewController, apenas digitei minha implementação:

 - ta 

e então eu apertei ESC para ver todos os methods da minha superclass que começam com “ta” como

 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

Isso também funciona ao adotar protocolos.

Comando ⌘ alt ⌥ shift T : revela o arquivo atual editado na tree do projeto.

ctrl + alt + + r para limpar o log

Use o navegador de class para mostrar methods herdados

A documentação de referência da API da Apple não mostra methods herdados de uma superclass. Às vezes, no entanto. É útil poder ver toda a gama de funcionalidades disponíveis para uma class – incluindo uma class personalizada. Você pode usar o Navegador de Classe (no menu Projeto) para exibir uma lista simples ou hierárquica de todas as classs relacionadas a um projeto atual. O painel superior no lado direito da janela do navegador mostra uma lista de methods associados ao object selecionado no navegador. Você pode usar a folha Configurar Opções para selecionar “Mostrar Membros Herdados” para mostrar methods herdados, bem como aqueles definidos pela própria class selecionada. Você clica no símbolo do pequeno livro para ir para a documentação correspondente.