65 votes

Existe-t-il un moyen de passer à une méthode spécifique dans Xcode ?

J'utilise Xcode 4.3 pour le développement de l'Objective-C. Je suis en train d'utiliser un éditeur de texte. Une fonctionnalité que j'apprécie dans d'autres éditeurs de texte (je sais que Xcode est un IDE), est le saut à une définition de méthode dans le même fichier de code.

Par exemple, si je suis dans @implementation de Calculator et que Calculator a 10 méthodes, j'aimerais pouvoir passer de l'une à l'autre.

Si j'appuie sur commande+L, je peux sauter à un numéro de ligne spécifique, existe-t-il un moyen de sauter de manière similaire mais à une définition de méthode ? Par exemple, au lieu de taper le numéro de ligne, tapez seulement le début du nom de la méthode.

Puis-je ouvrir d'une manière ou d'une autre une boîte de dialogue, taper le début de la signature d'une méthode et voir instantanément les résultats de la recherche et si je choisis une méthode, cela me mènera à celle-ci ?

Y a-t-il un moyen de passer d'une méthode à la suivante ?

0 votes

À ma connaissance, cette fonctionnalité n'existe pas. La boîte de liste des méthodes est ce qui s'en rapproche le plus, à ma connaissance.

162voto

lancejjohnson Points 1638

Je pense que c'est ce que vous cherchez :

Type ctrl - 6 pour activer l'option "Show Document Items" dans la "Jump Bar". Ensuite, commencez à taper une partie de la méthode que vous recherchez pour réduire les résultats.

Exemple :

Pour passer directement à - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

Type ctrl - 6 tapez "cellFor", déplacez la flèche vers le bas pour que la méthode soit mise en évidence, puis appuyez sur Enter . L'éditeur passera directement à cette méthode.

Par ailleurs, vous pouvez utiliser ctrl - 1 , ctrl - 2 , ctrl - 3 etc. pour accéder aux différentes sections de la "barre de saut".

4 votes

Cela a sauvé mon futur moi de l'arthrite rhumatoïde. J'apprécie beaucoup.

0 votes

Si je voulais insérer le cellForRowAtIndexPath dans mon code, quel est le moyen le plus rapide de le faire ? Y a-t-il des raccourcis pour utiliser moins de frappes de touches ?

0 votes

Dans Xcode, pour passer simplement à la méthode/fonction suivante, c'est une incroyable encombrant la séquence de touches ctrl + 6 puis retour au lieu d'une simple option + commande +.

21voto

Archagon Points 685

Si je vous comprends bien, essayez Command-Shift-O. Elle fait également office d'outil de recherche de fichiers.

1 votes

J'utilise cette fonction, mais votre réponse n'a rien à voir avec ma question.

2 votes

C'est ma préférée, mais existe-t-il quelque chose comme ça qui ne trouve que les méthodes dans le fichier ouvert ?

1 votes

@inorganik C'est la barre de navigation de la méthode, suggérée par luddite . Ctrl + 6

14voto

Evan Anger Points 184

Je ne comprends peut-être pas ce dont vous avez besoin, mais il semble que vous ayez plusieurs options.

  • Control + Command + J devrait vous amener à une définition.
  • Control + Command + Up / Control + Command + Down permet de basculer entre les fichiers .h/.m.
  • Dans le fichier .m, j'utilise souvent la liste déroulante des méthodes.

0 votes

Je cherche à sauter aux méthodes dans le même fichier. Je viens d'ajouter plus de détails sur ma question.

2voto

William Cerniuk Points 8832

Si vous voulez appuyer sur une séquence de touches de commande comme Command + Option + pour passer à la méthode suivante, ou Command + Option + pour passer à la méthode précédente, il n'y a pas d'animal de ce type dans Xcode. Les outils de développement antérieurs de macOS disposaient d'une telle capacité, mais Xcode présente de sérieuses lacunes en la matière...

Le saut le plus rapide dans les méthodes d'un fichier source est d'effectuer un Command + F (Trouver) sur [\-\+][ \t]*\( comme une expression régulière. Vous pouvez alors Command + G (Find Next) pour passer à la méthode suivante ou Command + Shift + G (Find Previous) pour passer à la méthode précédente.

Si vous êtes discipliné dans vos définitions de méthodes, vous pourrez peut-être rechercher - ( ou + ( comme une chaîne de texte normale à la place... un peu plus rapide.

Si c'est une démangeaison sérieuse à gratter, peut-être cela vaut-il la peine de créer un plugin Xcode (aussi stupide que cela puisse paraître pour une fonctionnalité aussi basique)... et de poster un lien ici pour le reste d'entre nous ;-)

1voto

Caleb Points 72897

Sélectionnez un symbole (il peut s'agir d'une méthode, mais ce n'est pas obligatoire) et faites un clic droit (ou un contrôle-clic). Le menu contextuel qui s'affiche comporte une commande "Sauter à la définition". Control-command-J est un raccourci pour cela.

Si l'élément que vous recherchez n'est pas visible, vous pouvez utiliser le navigateur de recherche (commande 3) pour effectuer une recherche dans le code.

En fonction de ce que vous recherchez, vous pouvez également trouver utile la fonction d'aide rapide du panneau Utilitaires. Si vous sélectionnez un symbole, l'aide rapide vous donnera au moins quelques informations de base sur ce symbole. Pour les symboles des API iOS ou MacOS X, l'aide est assez complète. Si vous avez sélectionné votre propre symbole, vous saurez où il est déclaré, et vous pourrez cliquer sur le nom du fichier pour accéder à la déclaration.

Je ne pense pas qu'il y ait une commande pour passer à la méthode suivante (où dans la méthode voudriez-vous passer ?). Si vous avez besoin de ce genre de choses, les fonctions de pliage de code de Xcode pourraient vous être utiles. Vous pouvez replier une méthode entière ou seulement certains blocs de la méthode. C'est très utile pour s'y retrouver dans un gros fichier pour la première fois.

0 votes

J'ai ajouté plus de détails à ma question. Je veux seulement un moyen facile de naviguer entre les méthodes d'une classe dans Xcode.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X