Wie kann ich dafür sorgen, dass die Registerkarten unter Xcode 4 normal funktionieren?

86

Xcode hat schließlich Tabs hinzugefügt, aber das Problem ist, dass sie sich sehr seltsam verhalten. Beispielsweise lassen sie einen Tab nur geöffnet, wenn er für einen neuen Tab geöffnet wurde.

Wenn Sie eine Datei nur durch Klicken in den Projektbaum öffnen, schließt Xcode Ihre Registerkarte, sobald Sie auf eine andere Datei im Baum klicken.

Ist es möglich, sie wie echte Registerkarten zu verhalten und zu verhindern, dass Xcode sie wiederverwendet? Wie?

Sorin
quelle
17
Ich denke auch, dass die Navigation von XCode verrückt und komisch ist. Registerkarten, aber auch jede Registerkarte hat einen Verlauf, aber der Verlauf besteht nicht nur aus Dateien, sondern aus Flecken in Dateien ... Sich mit der Tastatur fortzubewegen ist einfach das Problem. "Funktioniert wie in Safari" macht es nicht gut ...
David Van Brink
1
@davidvanbrink Ich verstehe es nicht, wie ist die Benutzeroberfläche von XCode überhaupt wie der Film ?
Bobobobo
1
Ich glaube, j03m hat die richtige Antwort auf Ihre Frage
Błażej

Antworten:

69

UPDATE für 2020:

Schließlich, fast 10 Jahre später, scheint Xcode 12 Beta 3 das hier beschriebene Problem größtenteils zu lösen. Im Bereich Navigationseinstellungen gibt es eine neue Option für den Navigationsstil , die dieses Verhalten steuert.

Dies kann sich natürlich in nachfolgenden Betas oder in der endgültigen Version von Xcode 12 ändern.

Das Verhalten hat einige neue Macken / Design-Entscheidungen, die sinnvoll erscheinen, aber ich gewöhne mich immer noch an die neue Erfahrung. Beispielsweise wird eine Registerkarte wiederverwendet, es sei denn, die Datei auf dieser Registerkarte wurde kürzlich bearbeitet. Eine solche Registerkarte ist kursiv dargestellt .


VORHERIGE ANTWORT

Ich glaube nicht, dass Sie derzeit das Verhalten bekommen können, das Sie sich wünschen (oder ich wünsche). Während die Registerkarten wie Safari funktionieren, funktionieren sie nicht wie Registerkarten in anderen gängigen IDEs (Visual Studio oder Eclipse). Und für mich ist das scheiße.

Im Allgemeinen erwarte ich, dass IDE-Registerkarten mehr als eine Datei offen halten. Wenn ich also in der Projektstruktur auf eine Datei klicke, wird diese voraussichtlich zu der Registerkarte wechseln, die ich mit dieser Datei geöffnet habe - sofern ich sie bereits geöffnet habe. Stattdessen ändert XCode 4 die aktuelle Registerkarte in die Datei, auf die ich geklickt habe. Dabei werden zwei Registerkarten mit derselben Datei erstellt. Es ist ziemlich nutzlos, zwei Registerkarten mit derselben Datei zu haben.

Dies zwingt den Benutzer, zuerst die Registerkartenleiste zu scannen, um festzustellen, ob die Datei gerade geöffnet ist. Wenn es nicht geöffnet ist, können Sie in den Projektbaum schauen. Aber wenn Sie zuerst in den Projektbaum klicken (was ich normalerweise mache), werden Sie bestraft, weil Sie gerade einen Tab getötet haben.

Daniel
quelle
1
Senden Sie einen Fehlerbericht! Der Name der Registerkarte sollte der aktuellen Datei in dieser Registerkarte (!)
Entsprechen
13
XCode 6 behandelt Tabs immer noch nicht wie erwartet :(
Ivan Marinov
1
Scheint in XCode 7 behoben! Ich habe es so eingestellt, dass ein Doppelklick in einer neuen Registerkarte geöffnet wird. Wenn die Datei bereits geöffnet ist, gelangen Sie zu dieser Registerkarte anstelle einer neuen.
ChiliNUT
1
chiliNUT. Wie haben Sie Ihre Einstellung für dieses Verhalten festgelegt? Wenn ich doppelklicke, wird die Datei in einer neuen Registerkarte geöffnet, auch wenn die Datei bereits in einer vorhandenen Registerkarte geöffnet ist.
Andynil
XCode 10 behandelt Tabs immer noch nicht wie erwartet :(
Pingu
90

Ich benutze eine Methode ähnlich wie Franks:

  • Unter Einstellungen> Navigation (oder Einstellungen> Allgemein in Versionen von XCode vor 5) können Sie die optionale Navigation auf die Registerkarte Separate Verwendung setzen
  • Jetzt opt eine Datei im Dateinavigator -Klick öffnet es in einem neuen Tab
  • Noch besser wäre es, opt Links im Code -Klick öffnet die Zieldatei in einem neuen Tab

Die große fehlende Funktion besteht darin, zu einer bereits geöffneten Registerkarte zu wechseln, die die Datei enthält, falls vorhanden (oder in der aktuellen zu bleiben).

drömsynt
quelle
Genial, diese Antwort hat mich gerettet, und Sie können auch auf Doppelklick in einem neuen Tab
öffnen setzen
8
Es befindet sich in den Einstellungen auf der Registerkarte Navigation (möglicherweise eine Änderung in Xcode 5). Einstellungen -> Navigation -> Optionale Navigation -> Verwendet separate Registerkarte
Priebe
Genau das habe ich gesucht! Ich habe immer IDEs wie VS oder PHPStorm verwendet, die Tabs verwendeten, und das hat mich wirklich gerettet
Hardsetting
3
Die große fehlende Funktion besteht darin, zu einer bereits geöffneten Registerkarte zu wechseln, die die Datei enthält, falls vorhanden (oder in der aktuellen zu bleiben). Ich wünschte, dies wird hinzugefügt
MistyD
3
Trotzdem gefällt mir die Tatsache nicht, dass ich bei geöffneter Sime-Datei zwei Registerkarten erhalten kann. Ich mag das Arbeitsbereich-Tab-System in Xcode überhaupt nicht ...
Nuno Gonçalves
24

Dies ist keine wirkliche Antwort, da sie eine Lösung enthält. Ich möchte meistens nur mitmachen. Durch Upvoting fühlen Sie sich jedoch besser und beweisen, dass Apple falsch liegt. :) :)

Das Problem bei der Implementierung von Registerkarten durch Xcode 4 besteht darin, dass Apple sie als Arbeitsbereich-Registerkarten implementiert hat . Mit anderen Worten, beim Erstellen einer neuen Registerkarte wird im Wesentlichen ein neuer Arbeitsbereich erstellt, von dem jeder seine eigenen Unterfenster mit seinen Konfigurationen usw. hat. Es handelt sich im Wesentlichen um eine gesamte Umgebung in jeder Registerkarte. Bei dieser Auswahl gibt es eine Reihe von Problemen.

Dies unterscheidet sich von der Implementierung von Dateiregistern durch die meisten IDE- / Texteditoren, bei denen ein Tab (im Allgemeinen) eine einzelne Datei darstellt und jede Datei einen eigenen Tab hat.

Das Problem mit Arbeitsbereich-Registerkarten besteht darin, dass es nur so viele potenzielle unterschiedliche Arbeitsbereiche gibt, von denen wir profitieren könnten, was die tatsächliche Verwendung von Registerkarten auf diese Weise stark einschränkt. Darüber hinaus werden die zusätzlichen Arbeitsbereiche nur zu einer Verpflichtung, die mehr Dinge einführt, mit denen sich der Benutzer der Anwendung befassen muss: Zum Beispiel, was die Navigatoransicht ist, welcher Editor-Modus aktiv ist (Standard, Assistent, Version), ob Die Debug-Konsole ist geöffnet usw. usw. Wenn Sie plötzlich zu einer neuen Registerkarte wechseln, müssen Sie sich jetzt darum kümmern, die Umgebung wieder in die gewünschte Form zu bringen, da die Wahrscheinlichkeit groß ist, dass die andere Registerkarte nicht in dem Zustand belassen wurde, in dem Sie sich befinden Erwarten Sie, dass Sie es finden. Dies rät tatsächlich von der Verwendung von Registerkarten ab, da dadurch mehr Arbeit in den Workflow eingeführt wird.

Bei Registerkarten für Dateien tritt dieses Problem nicht auf (Sonderfälle wie geteilte Ansichtsfenster werden nicht berücksichtigt), da sich nur die Datei ändert, die Sie betrachten, und nicht Ihre gesamte Umgebung. Darüber hinaus eignen sich Dateiregisterkarten bei ordnungsgemäßer Implementierung hervorragend als unmittelbarer Verlauf, sodass Sie mit geringem Aufwand schnell zu einer Datei zurückkehren können, in der kürzlich gearbeitet wurde. Die einzige Möglichkeit, dies in Xcode zu tun, besteht darin, explizit eine neue Registerkartenumgebung für jede Datei einzurichten, mit der Sie arbeiten möchten. Sie müssen jedoch darauf achten, die Datei in dieser Registerkarte nicht zu ändern, da sonst Ihre Datei plötzlich verloren geht: wieder mehr Arbeit für den Benutzer.

Arbeitsbereichsregisterkarten sind außerdem erheblich schwerer als Dateiregisterkarten, da viel mehr zu beachten ist und das Wechseln von Arbeitsbereichen viel mehr umfasst als das Wechseln von Dateien.

Die Wahrheit ist (und ich denke, die meisten werden mir darin zustimmen), dass für einen Entwickler Datei-Registerkarten viel nützlicher sind als Arbeitsbereich-Registerkarten, und derzeit fehlt Xcode immer noch eine ordnungsgemäße Implementierung dieser Funktion, die viele als grundlegende erforderliche Funktionalität betrachten würden in einer IDE / einem Editor.

devios1
quelle
18

Xcode->Preferences->General->Double Click Navigationund wählen Sie aus der Liste Uses Separate Tab.

Luca
quelle
4
In XCode 5 gehen Sie zuPreferences->Navigation->Double Click Navigation
Gerard
17

Nun, keine echte Antwort, aber meine persönliche Problemumgehung. Das eigentliche Problem für mich ist, dass eine in einem Tab geöffnete Datei in xcode 4 so leicht verschwindet. Das erneute Suchen einer Datei kann zeitaufwändig sein. Ich möchte, dass sie sich in einem Tab befinden und dort bleiben.

Ich habe dies (irgendwie) für mich gelöst, indem ich genau die Aktionen identifiziert habe, die dazu führen, dass die Registerkarte zu einer anderen Datei wechselt, und sie durch die entsprechenden Aktionen ersetzt habe, die stattdessen eine neue Registerkarte öffnen.

  • Anstatt im Navigator auf eine Datei zu klicken, doppelklicke ich immer auf die Datei, die ich festgelegt habe, um eine neue Registerkarte zu öffnen
  • Meistens benutze ich den Navigator nicht, da er in jeder Registerkarte einen anderen Status von geöffneten und geschlossenen Ordnern hat. Nicht nützlich für mich. Also wechselte ich zu Option ⌥ Command ⌘ O. Beim Öffnen einer Datei aus dieser Liste halte ich ShiftOption ⌥gedrückt. In dem kleinen Fenster wähle ich 'Neue Registerkarte'.
  • Wenn ich auf Links im Code klicke, drücke ich ShiftOption ⌥ Command ⌘auch und öffne in einem neuen Tab.

Ich behalte zwei feste Registerkarten, um zielbezogene Einstellungen zu bearbeiten und Build-Ergebnisse anzuzeigen. Ich habe alle automatischen Tab-Umschaltungen in den Einstellungen vollständig deaktiviert, weil ich bemerkt habe, dass mich das zu sehr abgelenkt hat.

Ich würde wirklich gerne so etwas wie die Xcode 3-Favoritenleiste in Xcode 4 bekommen, das war so einfach zu bedienen.

frank
quelle
2
Obwohl dies keine "Lösung" ist (soweit ich das beurteilen kann, gibt es keine), habe ich es sehr geschätzt zu lernen, wie man Tabs über "Schnellöffnung" öffnet und durch Links im Code klickt. Langweilig aber sehr nützlich. Vielen Dank.
Ajmccall
8

Ich kann mir vorstellen, dass meine Antwort für eine Weile nicht in die Luft sprudelt, aber wenn Sie möchten, dass dies wie ein visuelles Studio oder ein Intellij (oder zumindest näher) funktioniert

Einstellungen-> Allgemein-> Doppelklicken Sie auf Navigation-> Verwendet eine separate Registerkarte

Wenn Sie jetzt auf eine Datei doppelklicken, wird sie nicht mehr in einem neuen Fenster geöffnet und in einer neuen Registerkarte geöffnet.

Single ist immer noch dumm und übernimmt Ihren Tab. Aber wenn Sie sich an Doppelklicks gewöhnen (was ich bereits war), ersparen Sie sich einige Kopfschmerzen. Ich nehme an.

j03m
quelle
Diese Einstellung wurde bereits oben erwähnt, siehe stackoverflow.com/a/6666097/239408 stackoverflow.com/a/11029748/239408
xverges
4

Ich hasse es absolut, wie Tabs in Xcode funktionieren. Die einzige Problemumgehung, die ich als anständig empfunden habe, ist die Verwendung der Verknüpfungen auf den OSX-Registerkarten: STRG + CMD + -> STRG + CMD + <-

mithun_daa
quelle
3

Ich habe mich in Preferences-Behaviors zurechtgefunden!

Ich hasste Xcode 4 zuerst wegen der hier diskutierten Tab-Probleme, hauptsächlich weil die Debug-Informationen immer wieder neue Dateien in Tabs öffneten und den Navigator änderten

Unter Verhalten können Sie eine Registerkarte Debuggen definieren und Run and Build auf verschiedene Arten dorthin springen lassen. Auf der Registerkarte Debugge gebe ich den Navigatoren links und unten mehr Platz

Aus ähnlichen Gründen habe ich auch eine Registerkarte Suchen

Die anderen Registerkarten beziehen sich auf Dateien, in die ich schreibe. Ich beginne sie mit der .h, die normalerweise klein genug ist, sodass ich nur eine Ansicht benötige, und öffne dann mit einzelnen Klicks im Navegator 2-3 Versionen der CPP-Datei Ich kann sie auf die Speicherorte einstellen, an denen sich die letzten Hotspots in der Datei befinden. dann schließe ich die Navigatoren in diesen Registerkarten

Dies macht die Sorgfalt und die Tricks, die in den anderen Antworten hier angegeben sind, nicht ungültig, macht sie jedoch weitaus weniger schwierig

Viel Spaß beim Codieren!

Matthias Grob
quelle
3

Ich habe herausgefunden, dass Sie beim Drücken von optionaka altbeim Öffnen von Dateien im Navigator zu der Registerkarte springen, die bereits mit der Datei geöffnet ist, und eine neue Registerkarte wird geöffnet, falls sie noch nicht geöffnet war.

Diese Technik funktioniert auch beim Öffnen von Dateien über cmdshift- Ound Öffnen des Vorschlags mit option- enteranstelle von einfach enter...

Wenn es nun eine Möglichkeit gäbe, dies zur Standardeinstellung zu machen, dh die Notwendigkeit, optionständig zu drücken, würde entfernt, wäre dies ein großer Schritt nach vorne.

Außerdem verwende ich Behaviors, um zu verhindern, dass meine Tabs nach Test- oder Buildfehlern recycelt werden.

(Wie andere Leute mag ich das Tab-Verhalten von Xcode völlig falsch. Apple sollte sich IntelliJ ansehen ...)

Hendrik
quelle
1
Dies ist einer der hilfreicheren Vorschläge zur Wiederverwendung vorhandener Registerkarten. Weit entfernt von einer perfekten Lösung (anscheinend gibt es keine), aber es hilft!
Mason Lee
1

Die Xcode-Tab-Leiste ist so beschissen, dass Apple die Funktion der Tab-Navigation verbessern sollte, um zu vermeiden, dass 3 Punkte befolgt werden. 1. Doppelklicken Sie auf eine Datei, damit xcode eine weitere Registerkarte öffnen kann, falls diese bereits vorhanden war. 2. Bei mehr Registerkarten wird die Registerkarte klein, und daher weiß ich nicht, welche Datei in welcher Registerkarte enthalten ist. Ich möchte, dass die Registerkarte den vollständigen Namen anzeigt. 3. Bei noch mehr Registerkarten werden neue Registerkarten anstelle von zwei Zeilen mit Registerkarten ausgeblendet . Ich möchte zwei Zeilen mit Registerkarten anzeigen.

lbsweek
quelle
0

Registerkarten in Xcode 4 funktionieren wie Registerkarten an anderer Stelle unter Mac OS X, z. B. in Safari und Terminal.

Chris Hanson
quelle
Erstens bin ich hier über Registerkarte Öffnung Kriterien sprechen, ist es nicht sinnvoll , mit Anwendungen zu vergleichen , die nicht sind , projizieren orientiert. Das Problem ist, dass das Klicken auf den Projektbaum ein unangenehmes Verhalten beim Öffnen der Registerkarte auslöst.
Sorin
2
Registerkarten in Xcode 4 verhalten sich insofern wie "echte Registerkarten", als sie den Konventionen folgen, die für Registerkarten im Rest des Betriebssystems festgelegt wurden. Sie tun dies mit Absicht. Sie können wählen, ob Sie einen Optionsklick oder einen Doppelklick öffnen möchten, was auch immer Sie in einer neuen Registerkarte (oder einem neuen Fenster) in den allgemeinen Einstellungen angeklickt haben. Sie können nicht festlegen, dass mit einem Klick eine neue Registerkarte geöffnet wird.
Chris Hanson
Wenn Sie im Projektnavigator auf eine Datei klicken, öffnet Xcode keine Registerkarte und schließt diese Registerkarte, wenn Sie auf eine andere Datei im Projektnavigator klicken. Xcode zeigt die Datei an, auf die Sie im primären Editor der aktuellen Registerkarte geklickt haben.
Chris Hanson
1
Wie wäre es mit einer Tastenkombination zum Drehen zwischen Registerkarten?
Ming Yeow
26
Ich möchte kindisch abstimmen, weil ich es hasse, wie die Tabs funktionieren! Macht mich alle Grrrr. :-)
David Van Brink
0

Wenn Sie die Registerkartenleiste aktiviert haben (Registerkartenleiste anzeigen / anzeigen) und auf eine Datei doppelklicken, wird sie in einem eigenen Fenster mit einer einzelnen Registerkarte angezeigt ( Stellen Sie sicher, dass die Registerkartenleiste sowohl im neuen als auch im alten (Haupt-) Fenster aktiviert ist ).

Jetzt müssen Sie nur noch das neue Fenster von der Registerkarte ziehen und in die Registerkartenleiste Ihres Hauptfensters ablegen.

Geben Sie hier die Bildbeschreibung ein

Es bleibt als separate Registerkarte angedockt und zeigt diese Datei an.

Um die in dieser neuen Registerkarte geöffnete Datei zu ändern, gehen Sie im Projektnavigator zu Projekt / Anzeigen , wodurch der Projektnavigator auf der linken Seite geöffnet wird.

Bobobobo
quelle
3
Ist das jedes Mal "alles, was Sie tun müssen"? ;) Sie können (unter Einstellungen-> Verhalten) festlegen, dass ein Doppelklick in einer neuen Registerkarte anstelle eines neuen Fensters geöffnet werden soll, dies verbessert jedoch die schreckliche Implementierung von Registerkarten in erster Linie nicht.
Devios1
Sie haben kommentiert, um die Antwort von @ Daniel zu ignorieren, aber Ihre Antwort berücksichtigt nicht die Tatsache, dass durch einmaliges Klicken auf eine Datei die auf der aktuellen Registerkarte geöffnete Datei geändert wird. Dies ist anders als bei den meisten anderen IDEs und macht keinen Sinn.
0x6A75616E