Как я могу заставить вкладки нормально работать в Xcode 4?


87

Наконец, Xcode добавил вкладки, но проблема в том, что они ведут себя очень странно. Например, они будут держать вкладку открытой только в том случае, если она была открыта на новой вкладке.

Если вы откроете файл, просто щелкнув в дереве проекта, Xcode закроет вашу вкладку, как только вы нажмете на другой файл в дереве.

Можно ли заставить их вести себя как настоящие вкладки и предотвратить их повторное использование Xcode? Как?


18
Я тоже считаю, что навигация в XCode странная и странная. Вкладки, но также и каждая вкладка имеет историю, но история - это не просто файлы, это места в файлах ... Перемещаться с клавиатурой просто так. «Работает как в Safari» не делает его хорошим ...
Дэвид ван Бринк

1
@davidvanbrink Я не понимаю, как интерфейс XCode вообще похож на фильм ?
bobobobo

1
Я считаю, что j03m правильно ответил на ваш вопрос
Błażej

Ответы:


70

ОБНОВЛЕНИЕ на 2020 год:

Наконец, почти 10 лет спустя, Xcode 12.x теперь в основном решает описанную здесь проблему. На панели настроек навигации появился новый вариант стиля навигации , который управляет этим поведением.

В поведении есть некоторые новые особенности / варианты дизайна, которые кажутся понятными, но я все еще привыкаю к ​​новому опыту. Например, вкладка будет использоваться повторно, если файл на этой вкладке не редактировался недавно; такая вкладка выделяется курсивом .


ПРЕДЫДУЩИЙ ОТВЕТ

Я не думаю, что в настоящее время вы можете добиться желаемого (или желаемого мной) поведения. Хотя вкладки работают как Safari, они не работают как вкладки в других популярных IDE (Visual Studio или Eclipse). И для меня это отстой.

В общем, я ожидаю, что вкладки IDE будут держать открытыми более 1 файла. Поэтому, если я щелкну файл в дереве проекта, я ожидаю, что он переключится на вкладку, которую я открыл с этим файлом, если я уже открыл ее. Вместо этого XCode 4 изменяет текущую вкладку на файл, который я щелкнул, создавая 2 вкладки с одним и тем же файлом. Наличие двух вкладок с одним и тем же файлом бесполезно.

Это заставляет пользователя сначала сканировать панель вкладок, чтобы увидеть, открыт ли файл в данный момент; если он не открыт, вы можете посмотреть дерево проекта. Но если вы сначала щелкнете по дереву проекта (что я обычно и делаю), то вас накажут, потому что вы только что убили вкладку.


1
Отправьте отчет об ошибке! Имя вкладки должно совпадать с именем текущего файла на этой вкладке (!)
mda

13
XCode 6 по-прежнему не обрабатывает вкладки должным образом :(
Иван Маринов

1
Кажется, исправлено в XCode 7! Я настроил его так, чтобы двойной щелчок открывался на новой вкладке, и если файл уже открыт, вы переходите на эту вкладку, а не на новую.
chiliNUT

1
чили ОРЕХ. Как вы настроили такое поведение? Когда я дважды щелкаю, он открывает файл в новой вкладке, даже если у меня уже есть файл, открытый на существующей вкладке.
andynil

XCode 10 по-прежнему не обрабатывает вкладки
должным образом

90

Я использую метод, аналогичный франкам:

  • В « Настройки»> «Навигация» (или « Настройки»> «Общие» в версиях XCode до 5) вы можете установить для дополнительной навигации значение « Использует отдельную вкладку».
  • Теперь opt- щелчок по файлу в файловом навигаторе откроет его в новой вкладке.
  • Еще лучше, opt -clicking ссылки в коде открывает целевой файл в новой вкладке

Отсутствует большая особенность - переключиться на уже открытую вкладку, содержащую файл, если он есть (или остаться в текущей).


Замечательно, этот ответ меня спас, и вы также можете установить двойной щелчок, чтобы открыть в новой вкладке
melanke

8
Он находится на вкладке «Навигация» в настройках (возможно, это изменение в Xcode 5). Prefences -> Навигация -> Дополнительная навигация -> Использует отдельную вкладку
Priebe

Это именно то, что я искал! Я всегда использовал IDE, такие как VS или PHPStorm, которые использовали вкладки, и это действительно меня спасло
жесткая настройка

3
Отсутствует большая особенность - переключение на уже открытую вкладку, содержащую файл, если он есть (или сохранение в текущей). Я хочу, чтобы это добавили
MistyD

3
Тем не менее, мне не нравится, что я могу получить две вкладки с открытым файлом sime. Мне совсем не нравится система вкладок рабочего пространства в Xcode ...
Нуно Гонсалвеш

24

На самом деле это не ответ, поскольку он содержит решение; Я в основном просто хочу присоединиться к схватке. Но голосование за вас заставит вас почувствовать себя лучше и доказать, что Apple ошибалась. :)

Проблема с реализацией вкладок в Xcode 4 заключается в том, что Apple реализовала их как вкладки рабочего пространства . Другими словами, создание новой вкладки, по сути, создает новое рабочее пространство, каждая со своими собственными субпанелями со своими конфигурациями и т. Д. По сути, это целая среда на каждой вкладке. С этим выбором возникает ряд проблем.

Это отличается от реализации вкладок файлов в большинстве IDE / текстовых редакторов, в которых вкладка (как правило) представляет один файл, а каждый файл имеет свою собственную вкладку.

Проблема с вкладками рабочего пространства состоит в том, что мы могли бы извлечь выгоду из очень большого количества потенциально различных рабочих пространств, что серьезно ограничивает фактическое использование вкладок таким образом. Помимо этого, дополнительные рабочие области просто становятся обузой, вводя больше вещей, которые должны беспокоить пользователя приложения: например, что такое вид навигатора, какой режим редактора активен (стандартный, помощник, версия), открыта консоль отладки и т. д. и т. д. Внезапное переключение на новую вкладку означает, что теперь вам нужно беспокоиться о возвращении среды в нужную вам форму, потому что есть большая вероятность, что другая вкладка не была оставлена ​​в том состоянии, в котором вы ожидайте найти его. Это фактически препятствует использованию вкладок, потому что это вводит больше работы в рабочий процесс.

Вкладки файлов не имеют этой проблемы (не считая особых случаев, таких как разделенные панели просмотра), потому что все, что изменяется, - это файл, который вы просматриваете, а не вся ваша среда. Более того, при правильной реализации вкладки файлов отлично работают в качестве непосредственной истории, позволяя быстро переключиться на файл, с которым недавно работали, без особых усилий. Единственный способ сделать это в Xcode - явно настроить новую среду вкладок для каждого файла, с которым вы хотите работать, но вы должны быть осторожны, чтобы не изменить файл на этой вкладке, иначе ваш файл внезапно потеряется: опять же, больше работы для пользователя.

Вкладки рабочего пространства также значительно тяжелее, чем вкладки файлов, потому что нужно помнить гораздо больше, а переключение рабочих пространств требует гораздо большего, чем переключение файлов.

По правде говоря (и я думаю, что большинство согласится со мной в этом), для разработчика вкладки файлов гораздо более полезны, чем вкладки рабочей области, и в его нынешнем виде в Xcode по- прежнему отсутствует надлежащая реализация этой функции, которую многие сочли бы базовой необходимой функциональностью в IDE / редакторе.


18

Xcode->Preferences->General->Double Click Navigationи из списка выберите Uses Separate Tab.


4
В XCode 5 вы идете кPreferences->Navigation->Double Click Navigation
Джерарду

17

Ну, не настоящий ответ, но мой личный обходной путь. Настоящая проблема для меня заключается в том, что файл, открытый на вкладке, так легко удаляется в xcode 4. Повторный поиск файла может занять много времени, поэтому мне нравится, когда они находятся во вкладке и остаются там.

Я решил это (каким-то образом) для себя, точно определив действия, которые я делаю, которые заставляют вкладку переключаться на другой файл и заменять их эквивалентными действиями, которые вместо этого открывают новую вкладку.

  • Вместо того, чтобы один раз щелкнуть файл в навигаторе, я всегда дважды щелкаю, который я установил, чтобы открыть новую вкладку
  • Большую часть времени я не использую навигатор, так как он имеет разное состояние открытых и закрытых папок на каждой вкладке. Мне бесполезно. Итак, я перешел на использование Option ⌥ Command ⌘ O. При открытии файла из этого списка держу ShiftOption ⌥нажатой. В появившемся небольшом окне я выбираю «новую вкладку».
  • При нажатии на ссылки в коде я ShiftOption ⌥ Command ⌘тоже нажимаю и открываю в новой вкладке.

У меня есть две фиксированные вкладки для редактирования параметров, связанных с целью, и для просмотра результатов сборки. Я полностью отключил автоматическое переключение вкладок в настройках, потому что заметил, что это меня сильно отвлекает.

Мне бы очень хотелось получить что-то вроде панели избранного xcode 3 в xcode 4, это было так просто в использовании ..


2
Хотя это не «решение» (насколько я могу судить, его нет), мне понравилось научиться открывать вкладки с помощью «быстрого открытия» и переходить по ссылкам в коде. Утомительно, но очень полезно. Спасибо.
ajmccall

8

Думаю, мой ответ какое-то время не всплывет, но если вы хотите, чтобы это работало как Visual Studio или intellij (или, по крайней мере, ближе)

Настройки-> Общие-> Двойной щелчок по навигации-> Использует отдельную вкладку

Двойной щелчок по файлу перестанет открывать его в новом окне и откроет его в новой вкладке.

Сингл по-прежнему тупой и занимает вашу вкладку. Но если вы привыкнете к двойному щелчку (что я уже делал), это избавит вас от головной боли. Я полагаю.


Этот параметр уже упоминалось выше, см stackoverflow.com/a/6666097/239408 stackoverflow.com/a/11029748/239408
xverges

4

Я абсолютно ненавижу работу вкладок в Xcode. Однако единственный обходной путь, который я обнаружил, который работает достойно, - это использование ярлыков вкладок OSX: CTRL + CMD + -> CTRL + CMD + <-


3

Я нашел свой путь в Preferences-Behaviors!

Сначала я ненавидел Xcode 4 из-за проблем с вкладками, обсуждаемых здесь, в основном потому, что отладочная информация продолжала открывать новые файлы во вкладках и изменять навигатор

в Behaviors вы можете определить вкладку Debug и сделать так, чтобы Run и Build переходили туда разными способами. во вкладке Debug я оставляю больше места для навигаторов слева и снизу

по тем же причинам у меня тоже есть вкладка "Найти"

другие вкладки предназначены для файлов, в которые я пишу. Я начинаю их с .h, который обычно достаточно мал, поэтому мне нужно только одно представление, а затем одним щелчком мыши в навигаторе я открываю 2-3 версии файла .cpp, поэтому Я могу установить их в тех местах, где есть недавние горячие точки в файле. затем закрываю навигаторы на этих вкладках

это не отменяет осторожность и уловки, данные в других ответах здесь, но делает их гораздо менее сложными

удачного кодирования!


3

Я выяснил, что при нажатии optionaka altпри открытии файлов в навигаторе вы перейдете на вкладку, которая уже открыта с файлом, и откроется новая вкладка, если она еще не была открыта.

Этот метод также работает при открытии файлов с помощью cmdshift- Oи открытии предложения с помощью option- enterвместо простого enter...

Теперь, если бы был какой-то способ сделать это по умолчанию, то есть необходимость постоянно нажимать optionбыла бы устранена, это было бы большим шагом вперед.

Также я использую Behaviors, чтобы мои вкладки не использовались повторно после сбоев тестирования или сборки.

(Как и другим людям, мне совершенно не нравится поведение вкладок Xcode. Apple должна взглянуть на IntelliJ ...)


1
Это одно из наиболее полезных советов по повторному использованию существующих вкладок. Далеко не идеальное решение (видимо, его нет), но помогает!
Мейсон Ли

1

Панель вкладок xcode настолько отстойна, что я думаю, что Apple должна улучшить функцию навигации по вкладкам, чтобы избежать следующих трех пунктов. 1. двойной щелчок по файлу позволит xcode открыть другую вкладку, если она там уже была. 2. для большего количества вкладок вкладка станет маленькой, и поэтому я не знаю, в каком файле на какой вкладке, я хочу, чтобы вкладка показывала полное имя 3. для еще большего количества вкладок новые вкладки будут скрыты вместо двух строк вкладок . Я хочу, чтобы он показывал две строки панелей вкладок.


0

Вкладки в Xcode 4 работают так же, как вкладки в других местах Mac OS X, например в Safari и Terminal.


Во-первых, я говорю здесь о критериях открытия вкладок, нет смысла сравнивать с приложениями, не ориентированными на проекты . Проблема в том, что щелчок по дереву проекта вызывает неудобное поведение при открытии вкладок.
sorin

2
Вкладки в Xcode 4 действительно ведут себя как «настоящие вкладки» в том смысле, что они соответствуют соглашениям, установленным для вкладок в остальной части операционной системы. Они делают это намеренно. Вы можете выбрать, щелкнуть ли опцией или дважды щелкнуть, чтобы открыть то, что вы щелкнули, в новой вкладке (или окне) в общих настройках; вы не можете выбрать открытие новой вкладки одним щелчком мыши.
Крис Хэнсон,

Более конкретно, если вы щелкаете файл в навигаторе проекта, Xcode не «открывает вкладку», а затем «закрывает эту вкладку», когда вы щелкаете другой файл в навигаторе проекта. Xcode показывает файл, который вы щелкнули в основном редакторе текущей вкладки.
Крис Хэнсон,

1
как насчет сочетания клавиш для поворота между вкладками?
ming yeow

26
Я по-детски хочу проголосовать против, потому что ненавижу, как работают вкладки! Делает меня все Grrrr. :-)
Дэвид ван Бринк

0

Если у вас включена панель вкладок (Просмотр / Показать панель вкладок) и вы дважды щелкаете файл, он появляется в его собственном окне с одной вкладкой ( убедитесь, что панель вкладок включена как в новом, так и в старом (главном) окнах ).

Теперь все, что вам нужно сделать, это перетащить это новое окно с его вкладки на панель вкладок главного окна.

введите описание изображения здесь

Он останется закрепленным в виде отдельной вкладки, отображающей этот файл.

Чтобы изменить файл, открытый на этой новой вкладке, перейдите в Project / Reveal в Project Navigator , который откроет навигатор проекта с левой стороны.


3
Это «все, что тебе нужно делать» каждый раз? ;) Вы можете определить (в Настройках-> Поведение), что двойной щелчок должен открываться в новой вкладке, а не в новом окне, но это все равно не улучшает ужасную реализацию вкладок в первую очередь.
devios1

Вы прокомментировали игнорирование ответа @Daniel, но в вашем ответе не учитывается тот факт, что при однократном щелчке по файлу изменяется файл, открытый на текущей вкладке. Это не похоже на большинство других IDE и не имеет смысла.
0x6A75616E
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.