Comment puis-je faire fonctionner les onglets normalement sur Xcode 4?


87

Xcode a finalement ajouté des onglets mais le problème est qu'ils se comportent très étrangement. Par exemple, ils garderont un onglet ouvert uniquement s'il a été ouvert dans un nouvel onglet.

Si vous ouvrez un fichier simplement en cliquant dans l'arborescence du projet, Xcode fermera votre onglet dès que vous cliquerez sur un autre fichier dans l'arborescence.

Est-il possible de les faire se comporter comme de vrais onglets et d'empêcher Xcode de les réutiliser? Comment?


18
Moi aussi, je pense que la navigation de XCode est bizarre et bizarre. Les onglets, mais aussi chaque onglet a un historique, mais l'historique ne se résume pas à des fichiers, ce sont des taches dans les fichiers ... Se déplacer avec le clavier, c'est juste. "Fonctionne comme dans Safari" ne le rend pas bon ...
david van brink

1
@davidvanbrink Je ne comprends pas, comment est l'interface de XCode du tout comme dans le film ?
bobobobo

1
Je crois que j03m a répondu correctement à votre question
Błażej

Réponses:


70

MISE À JOUR pour 2020:

Enfin, près de 10 ans plus tard, Xcode 12 beta 3 semble désormais résoudre principalement le problème décrit ici. Il existe une nouvelle option de style de navigation dans le panneau des paramètres de navigation qui contrôle ce comportement.

Bien sûr, cela peut changer dans les versions bêta suivantes ou dans la version finale de Xcode 12.

Le comportement a de nouvelles bizarreries / choix de conception qui semblent avoir du sens, mais je m'habitue toujours à la nouvelle expérience. Par exemple, un onglet sera réutilisé à moins que le fichier de cet onglet n'ait été modifié récemment; un tel onglet est indiqué par un titre en italique .


RÉPONSE PRÉCÉDENTE

Je ne pense pas que vous puissiez actuellement obtenir le comportement que vous désirez (ou que je désire). Bien que les onglets fonctionnent comme Safari, ils ne fonctionnent pas comme les onglets dans d'autres IDE populaires (Visual Studio ou Eclipse). Et pour moi, ce genre de craint.

En général, je m'attends à ce que les onglets IDE gardent plus d'un fichier ouvert. Donc, si je clique sur un fichier dans l'arborescence du projet, je m'attends à ce qu'il passe à l'onglet que j'ai ouvert avec ce fichier - si je l'ai déjà ouvert. Au lieu de cela, XCode 4 change l'onglet actuel pour le fichier sur lequel j'ai cliqué - créant 2 onglets avec le même fichier. Avoir 2 onglets avec le même fichier est assez inutile.

Cela oblige l'utilisateur à parcourir d'abord la barre d'onglets pour voir si le fichier est actuellement ouvert; s'il n'est pas ouvert, vous pouvez consulter l'arborescence du projet. Mais si vous cliquez d'abord dans l'arborescence du projet (ce que j'ai tendance à faire), vous êtes puni car vous venez de tuer un onglet.


1
Soumettez un rapport de bogue! Le nom de l'onglet doit être égal au fichier actuel dans cet onglet (!)
mda

13
XCode 6 ne gère toujours pas les onglets comme prévu :(
Ivan Marinov

1
Semble corrigé dans XCode 7! Je l'ai configuré, donc un double-clic s'ouvre dans un nouvel onglet, et si le fichier est déjà ouvert, il vous amène à cet onglet au lieu d'un nouvel.
chiliNUT

1
chiliNUT. Comment avez-vous défini votre paramètre pour ce comportement? Lorsque je double-clique, cela ouvre le fichier dans un nouvel onglet, même si j'ai déjà le fichier ouvert dans un onglet existant.
andynil

XCode 10 ne gère toujours pas les onglets comme prévu :(
pingu

90

J'utilise une méthode similaire à franks:

  • Dans Préférences> Navigation (ou Préférences> Général dans les versions de XCode antérieures à 5), vous pouvez définir la navigation facultative sur Utilise un onglet séparé
  • Maintenant opt -cliquez un fichier dans le navigateur de fichiers va ouvrir dans un nouvel onglet
  • Mieux encore, opter- cliquer sur les liens dans le code ouvre le fichier de destination dans un nouvel onglet

La grande fonctionnalité manquante est de passer à un onglet déjà ouvert contenant le fichier s'il y en a un (ou de rester dans celui actuel).


Génial, cette réponse m'a sauvé, et vous pouvez également définir un double-clic ouvrir dans un nouvel onglet
melanke

8
C'est dans l'onglet Navigation dans les Préférences (Cela pourrait être un changement dans Xcode 5). Préférences -> Navigation -> Navigation facultative -> Utilise un onglet
séparé

Ceci est exactement ce que je cherchais! J'ai toujours utilisé des IDE comme VS ou PHPStorm qui utilisaient des onglets et cela m'a vraiment sauvé
dur

3
La grande fonctionnalité manquante est de passer à un onglet déjà ouvert contenant le fichier s'il y en a un (ou de rester dans celui actuel). Je souhaite que cela soit ajouté
MistyD

3
Pourtant, je n'aime pas le fait que je puisse obtenir deux onglets avec le fichier sime ouvert. Je n'aime pas du tout le système d'onglets d'espace de travail dans Xcode ...
Nuno Gonçalves

24

Ce n'est pas vraiment une réponse dans la mesure où il contient une solution; Je veux surtout me joindre à la plainte. Mais le vote positif vous fera vous sentir mieux et prouvera à Apple qu'il a tort. :)

Le problème avec l'implémentation des onglets par Xcode 4 est qu'Apple les a implémentés en tant qu'onglets d' espace de travail . En d'autres termes, la création d'un nouvel onglet crée essentiellement un nouvel espace de travail, chacun avec ses propres sous-volets avec leurs configurations, etc. C'est essentiellement un environnement complet dans chaque onglet. Il y a un certain nombre de problèmes avec ce choix.

Cela diffère de l'implémentation des onglets de fichiers par la plupart des éditeurs de texte / IDE dans laquelle un onglet représente (généralement) un seul fichier, et chaque fichier a son propre onglet.

Le problème avec les onglets d'espace de travail est qu'il n'y a qu'un nombre limité d'espaces de travail différents potentiels dont nous pourrions bénéficier, ce qui limite considérablement l'utilisation réelle des onglets de cette manière. Au-delà de cela, les espaces de travail supplémentaires deviennent simplement un handicap, introduisant plus de choses dont l'utilisateur de l'application doit se préoccuper: par exemple, ce qu'est la vue du navigateur, quel mode éditeur est actif (standard, assistant, version), si la console de débogage est ouverte, etc. etc. Passer soudainement à un nouvel onglet signifie que vous devez maintenant vous soucier de remettre l'environnement dans la forme dont vous avez besoin, car il y a de fortes chances que l'autre onglet ne soit pas laissé dans l'état où vous attendez-vous à le trouver. Cela décourage en fait l'utilisation des onglets car cela introduit plus de travail dans le flux de travail.

Les onglets de fichiers n'ont pas ce problème (sans compter les cas particuliers comme les volets de vue fractionnée) car tout ce qui change est le fichier que vous regardez, pas votre environnement entier. De plus, s'ils sont correctement mis en œuvre, les onglets de fichiers fonctionnent très bien comme un historique immédiat, permettant de revenir rapidement à un fichier qui a été travaillé récemment, avec peu d'effort. La seule façon de le faire dans Xcode est de configurer explicitement un nouvel environnement d'onglets pour chaque fichier avec lequel vous souhaitez travailler, mais vous devez faire attention à ne pas modifier le fichier dans cet onglet ou votre fichier se perd tout d'un coup: encore une fois, plus de travail pour l'utilisateur.

Les onglets d'espace de travail sont également beaucoup plus lourds que les onglets de fichier, car il y a beaucoup plus à retenir et le changement d'espace de travail implique beaucoup plus que le changement de fichiers.

La vérité est (et je pense que la plupart seront d'accord avec moi sur ce point), pour un développeur, les onglets de fichiers sont beaucoup plus utiles que les onglets d'espace de travail, et dans l'état actuel des choses, Xcode n'a toujours pas d'implémentation appropriée de cette fonctionnalité que beaucoup considéreraient comme une fonctionnalité de base requise. dans un IDE / éditeur.


18

Xcode->Preferences->General->Double Click Navigationet dans la liste, choisissez Uses Separate Tab.


4
Dans XCode 5, vous allez àPreferences->Navigation->Double Click Navigation
Gerard

17

Eh bien, pas une vraie réponse mais ma solution personnelle. Le vrai problème pour moi est qu'un fichier ouvert dans un onglet disparaît si facilement dans xcode 4. Trouver à nouveau un fichier peut prendre du temps, alors j'aime qu'ils soient dans un onglet et y restent.

J'ai résolu cela (en quelque sorte) pour moi en identifiant exactement les actions que je fais qui font basculer l'onglet vers un autre fichier et les remplacent par leurs actions équivalentes qui ouvrent un nouvel onglet à la place.

  • Au lieu de cliquer une fois sur un fichier dans le navigateur, je double-clique toujours sur ce que j'ai défini pour ouvrir un nouvel onglet
  • La plupart du temps, je n'utilise pas le navigateur, car il a un état différent des dossiers ouverts et fermés dans chaque onglet. Pas utile pour moi. Alors je suis passé à l'utilisation Option ⌥ Command ⌘ O. Lors de l'ouverture d'un fichier de cette liste, je gardeShiftOption ⌥ appuyé. Dans la petite fenêtre qui apparaît, je choisis «nouvel onglet».
  • Lorsque je clique sur des liens dans le code, j'appuie ShiftOption ⌥ Command ⌘également et j'ouvre dans un nouvel onglet.

Je garde deux onglets fixes pour modifier les paramètres liés à la cible et pour afficher les résultats de la construction. J'ai complètement désactivé tout changement d'onglet automatique dans les préférences, car j'ai remarqué que cela me distrayait beaucoup.

J'adorerais vraiment obtenir quelque chose comme la barre des favoris xcode 3 dans xcode 4, c'était tellement simple à utiliser.


2
Bien que ce ne soit pas une "solution" (il n'y en a pas pour autant que je sache), j'ai apprécié d'apprendre comment ouvrir les onglets via "ouverture rapide" et en cliquant sur des liens dans le code. Fastidieux mais très utile. Merci.
ajmccall

8

J'imagine que ma réponse ne bouillonnera pas avant un moment, mais si vous voulez que cela fonctionne comme un studio visuel ou un intellij (ou du moins plus proche)

Préférences-> Général-> Navigation par double-clic-> Utilise un onglet séparé

Double-cliquez sur un fichier maintenant arrêtera de l'ouvrir dans une nouvelle fenêtre et l'ouvrira dans un nouvel onglet.

Le single est toujours stupide et prend le dessus sur votre onglet. Mais si vous vous habituez à double-cliquer (ce que j'étais déjà), cela vous évitera quelques maux de tête. Je suppose.


Ce paramètre a déjà été mentionné ci-dessus, voir stackoverflow.com/a/6666097/239408 stackoverflow.com/a/11029748/239408
xverges

4

Je déteste absolument le fonctionnement des onglets dans Xcode. Cependant, la seule solution de contournement que j'ai trouvée qui fonctionne correctement consiste à utiliser les raccourcis des onglets OSX: CTRL + CMD + -> CTRL + CMD + <-


3

J'ai trouvé ma voie dans Préférences-Comportements!

J'ai d'abord détesté Xcode 4 pour les problèmes d'onglets abordés ici, principalement parce que les informations de débogage continuaient d'ouvrir de nouveaux fichiers dans les onglets et de changer le navigateur.

dans Comportements, vous pouvez définir un onglet Débogage et y faire sauter Exécuter et Construire de différentes manières. dans l'onglet Débogage, je donne plus d'espace aux navigateurs à gauche et en bas

pour des raisons similaires, j'ai aussi un onglet Rechercher

les autres onglets sont pour les fichiers dans lesquels j'écris. Je les démarre avec le .h qui est généralement assez petit donc je n'ai besoin que d'une seule vue, puis avec un simple clic dans le navegator j'ouvre 2-3 versions du fichier .cpp donc Je peux les définir sur les emplacements où se trouvent les points chauds récents dans le fichier. puis je ferme les navigateurs dans ces onglets

cela n'invalide pas les soins et les astuces donnés dans les autres réponses ici, mais les rend beaucoup moins difficiles

bon codage!


3

J'ai découvert qu'en appuyant sur optionaka altlors de l'ouverture de fichiers dans le navigateur, vous passerez à l'onglet déjà ouvert avec le fichier et un nouvel onglet s'ouvrira au cas où il ne serait pas encore ouvert.

Cette technique fonctionne également lors de l'ouverture de fichiers via cmdshift- Oet de l'ouverture de la suggestion avec option- enterau lieu de simplement enter...

Maintenant, s'il y avait un moyen d'en faire la valeur par défaut, c'est-à-dire que la nécessité de continuer à appuyer optiontout le temps serait supprimée, ce serait un grand pas en avant.

J'utilise également Behaviors pour éviter que mes onglets ne soient recyclés après des échecs de test ou de construction.

(Comme d'autres personnes, j'aime totalement le comportement des onglets de Xcode. Apple devrait jeter un œil à IntelliJ ...)


1
C'est l'une des suggestions les plus utiles pour la réutilisation des onglets existants. Loin d'être une solution parfaite (apparemment il n'y en a pas), mais ça aide!
Mason Lee

1

La barre d'onglets xcode est tellement nul, je pense qu'Apple devrait améliorer la fonctionnalité de navigation par onglets pour éviter de suivre 3 points. 1. double-cliquez sur un fichier permettra à xcode d'ouvrir un autre onglet s'il y a déjà été. 2. pour plus d'onglets, l'onglet deviendra petit et donc je ne sais pas quel fichier dans quel onglet, je veux que l'onglet affiche le nom complet 3. pour encore plus d'onglets, les nouveaux onglets seront masqués, au lieu de deux lignes d'onglets . Je veux lui montrer deux lignes de barres d'onglets.


0

Les onglets dans Xcode 4 fonctionnent comme des onglets ailleurs sur Mac OS X, par exemple dans Safari et Terminal.


Tout d'abord, je parle ici de critères d'ouverture d'onglet, cela n'a pas de sens de comparer avec des applications qui ne sont pas orientées projet . Le problème est que cliquer sur l'arborescence du projet déclenche un comportement maladroit concernant l'ouverture des onglets.
sorin

2
Les onglets dans Xcode 4 se comportent comme de «vrais onglets» en ce sens qu'ils suivent les conventions établies pour les onglets dans le reste du système d'exploitation. Ils le font par conception. Vous pouvez choisir d'ouvrir l'option-clic ou double-cliquer sur tout ce que vous avez cliqué dans un nouvel onglet (ou une nouvelle fenêtre) dans les préférences générales; vous ne pouvez pas choisir d'ouvrir un nouvel onglet en un seul clic.
Chris Hanson

Plus précisément, si vous cliquez sur un fichier dans le navigateur de projet, Xcode «n'ouvre pas un onglet», puis «ferme cet onglet» lorsque vous cliquez sur un autre fichier dans le navigateur de projet. Xcode affiche le fichier sur lequel vous avez cliqué dans l'éditeur principal de l'onglet actuel.
Chris Hanson

1
que diriez-vous de raccourci clavier pour faire pivoter entre les onglets?
ming yeow

26
Je veux un vote défavorable, car je déteste le fonctionnement des onglets! Ça me rend tout Grrrr. :-)
david van brink

0

Si vous avez la barre de tabulation (Afficher / Afficher Tab Bar) et vous double cliquez sur un fichier, il apparaît dans sa propre fenêtre, avec un seul onglet ( Assurez - vous que la barre d' onglets est activé dans les deux nouvelles fenêtres et vieux (principaux) ).

Il ne vous reste plus qu'à faire glisser cette nouvelle fenêtre depuis son onglet et à la déposer dans la barre d'onglets de votre fenêtre principale.

entrez la description de l'image ici

Il restera ancré dans un onglet séparé, affichant ce fichier.

Pour modifier le fichier ouvert dans ce nouvel onglet, accédez à Projet / Révéler dans Project Navigator , qui ouvre le navigateur de projet sur le côté gauche.


3
Est-ce «tout ce que vous avez à faire» à chaque fois? ;) Vous pouvez définir (dans Préférences-> Comportement) que le double-clic devrait s'ouvrir dans un nouvel onglet au lieu d'une nouvelle fenêtre, mais cela n'améliore toujours pas l'implémentation horrible des onglets en premier lieu.
devios1

Vous avez commenté de ne pas tenir compte de la réponse de @ Daniel, mais votre réponse ne tient pas compte du fait que lorsque vous cliquez une fois sur un fichier, cela change le fichier ouvert dans l'onglet actuel. Ceci est différent de la plupart des autres IDE et cela n'a aucun sens.
0x6A75616E
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.