Ukryte funkcje Xcode 4

109

Teraz, gdy Xcode 4 jest oficjalnie wydany, czas na kontynuację mojego poprzedniego pytania: ukryte funkcje Xcode

Więc czym one są? Jakie są te ukryte małe wskazówki i porady dotyczące Xcode 4, bez których nie możesz żyć?

Ogranicz swoje wskazówki do tych, które są nowe i specyficzne dla Xcode 4!

Jeff Atwood
źródło

Odpowiedzi:

42

Jeśli chcesz, aby Twój kod wyglądał tak dobrze, jak działa, bez wątpienia użyłeś #pragma mark - i #pragma mark <name>zapewniłeś ładne wizualne grupowanie na liście rozwijanej klas Xcode. Xcode 4 teraz łączy je w jeden plik#pragma mark - <name> .

Więcej na temat znaku pragmy .

Znak Xcode pragma

Answerbot
źródło
2
Czy (nieco bardziej przenośna) // MARK: -wersja też działa?
Nikolai Ruhe
1
tak, oba są w porządku: // MARK: - <name> lub // MARK: <name> -
nschmidt
35
  • shift- cmd- optkliknięcie symbolu pozwala powiedzieć Xcode dokładnie, gdzie w interfejsie użytkownika chcesz otworzyć plik, do którego prowadzi nawigacja.

  • cmd- retwyłącza edytor / asystent wersji (prawy panel)

  • shift- cmd- Yaby ukryć debugger

  • cmd- 0aby ukryć nawigator (lewy panel)

  • cmd- [1..n]przełączaj się między nawigatorami po lewej stronie

  • cmd- opt- [1..n]przełączanie się między narzędziami (rzecz ogólnie po prawej)

  • ctrl- [1..n]przełączaj się między różnymi powiązanymi plikami w edytorze

Ogólnie rzecz biorąc, Xcode 4 stara się zachować spójność za pomocą klawiszy skrótu. Cmd jest dla poleceń mainline. Dodawanie modyfikatorów dotyczy analogicznych poleceń skoncentrowanych na jednej określonej podfunkcji.

(To tylko cztery, które przychodzą mi do głowy jako moje najbardziej uderzające skróty, których stale używam! Jestem pewien, że z czasem się to zmieni, gdy mój przepływ pracy zostanie refaktoryzowany w nowy gorący sposób.)

bbum
źródło
8
shift-cmd-opt-click ... Mind. Nadęty. Dziękuję Ci.
Danilo Campos
1
Oooh ... dzięki za edytowanie, Dave. Nie wiedziałem o <kbd> ... </kbd>.
bbum
10
-Kliknięcie jest połączeniem dwóch skrótów: ⌘-kliknięcie dowolnego symbolu, aby otworzyć plik, który go deklaruje, oraz ⇧⌥, aby wyświetlić okno podręczne, w którym można go otworzyć. Możesz użyć tego ostatniego ulepszenia kombinacji klawiszy na kilka innych rzeczy, jak opisałem w jednej z moich odpowiedzi.
Peter Hosey
3
Ponadto, dla takich jak ja, którzy używali skrótów ⌘- [1–6] programu Interface Builder dla różnych inspektorów, stały się one ⌘⌥- [1–7], o których wspomniałeś podczas edycji końcówki.
Peter Hosey
Czy istnieje sposób na użycie ⇧⌘⌥-kliknięcia bez użycia myszy, ale zamiast klawiatury (i kiedy daszek znajduje się na symbolu, który chcesz otworzyć)? ⌘⌥-, otwiera nowy sąsiedni edytor, ale AFAICS tylko bieżący plik jest brany pod uwagę.
Piotr Byzia
18

Xcode 4 dodaje nową funkcję „Fragmenty kodu”, dostępną poprzez Widok> Narzędzia> Biblioteka fragmentów kodu. Aby dodać nowy fragment kodu, zaznacz tekst w widoku edytora i przeciągnij go do biblioteki fragmentów. Możesz albo przeciągnąć fragment i upuścić go w kodzie, aby go użyć, lub, o wiele wygodniej, przypisać do niego skrót uzupełniania.

Po wpisaniu tej serii liter zostanie ona automatycznie wyświetlona w wyskakującym menu uzupełniania kodu podczas wpisywania kodu. Na przykład, między innymi, mam skonfigurowany fragment kodu tak, że wpisanie „svk” rozwinie się do setValue:<#value#> forKey:<#key#>. Może to zaoszczędzić wiele wpisywania i / lub wędkowania w menu autouzupełniania dla metod i innych wyrażeń kodu, których najczęściej używasz. Xcode jest dostarczany z wieloma wbudowanymi fragmentami, które są również bardzo przydatne.

Brian Webster
źródło
15

Nowy skrót, którego używam najczęściej: przeciągnięcie trzema palcami (w górę lub w dół) do zamiany odpowiedników (między interfejsem a plikami implementacji). Nigdy więcej akrobacji ręcznych!

Dzięki https://twitter.com/xctotd/status/48148271759241216

wdn
źródło
1
@Dave DeLong, jak możesz to zrobić na klawiaturze? Robiłem polecenie-polecenie-up, aby przejść z interfejsu do implementacji w XCode 3. To już nie działa w 4. Jaki jest nowy sposób?
Dan Rosenstark
5
@yar control-cmd-up / down arrow
Dave DeLong
Dzięki, jak zawsze, @Dave DeLong.
Dan Rosenstark
Czy nadal tak jest w Lion? Bo w lwie pionowe przesunięcie trzema palcami po gładziku aktywuje Mission Control. Zakładam, że mówimy o przesuwaniu gładzika, a nie o magicznej myszy.
DonnaLea
Wygląda na to, że obecnie nie ma prostego rozwiązania, nawet jeśli przełączysz kontrolę misji na przesunięcie 4 palcami. Zobacz ten wątek: stackoverflow.com/questions/6771057/…
wdn
13

shift- option-kliknij plik wLista grup i plikówProjekt Navigator lub hold shift- optionprzy wyborze pliku z Pasek.

Otrzymasz wyskakujące okienko, z którego możesz wybrać, gdzie otworzyć plik. Nowa lub istniejąca karta, nowy lub istniejący edytor podziału (Asystent), nowe okno - jest tam każda możliwa opcja.

Peter Hosey
źródło
4
Dziękuję za zwrócenie uwagi. Bardzo przydatne. Działa również na wybranym pliku w oknie dialogowym „Otwórz szybko” (⇧⌘O).
Cris
2
Uwielbiam to, jak wiele pracy włożono w mały widget interfejsu użytkownika, którego większość ludzi nigdy nie zobaczy. :)
Simon Whitaker
13

Karty w Xcode 4 są niesamowite. Każdy z nich zachowuje swój własny, oddzielny układ, więc możesz mieć wiele zakładek z różnymi elementami i mieć każdą z nich odpowiednio ułożoną.

Konfigurowałem swoje projekty z trzema układami - po jednym dla obiektu projektu, po jednym dla każdej końcówki (pokazującej źródła klasy właściciela) i po jednym dla każdej klasy .

Jest tu jeden błąd: od wersji 4.0 Xcode zresetuje stan (wyłączając wszystkich Asystentów) aktywnej karty po ponownym otwarciu projektu. Sposób obejścia problemu polega na przełączeniu się na kartę bez Asystentów do zamknięcia Xcode przed zamknięciem projektu. Złożyłem to jako numer radaru 9178441.

Peter Hosey
źródło
10
  • ctrl- 6wyskakuje wewnątrz pliku segment paska przeskoku (umożliwia przeskakiwanie do metod za pomocą klawiatury)

  • cmd- {/ }wybierz poprzednią / następną kartę

  • cmd- Jprzejdź do dowolnego edytora (ale dlaczego och, dlaczego TAB nie przełącza się między nimi?)

Kryzys
źródło
1
Należy również pamiętać, że skróty klawiaturowe można konfigurować. Zmieniłem poprzednią / następną kartę na ⌘⌥⇠ / ⇢, aby pasowała do Chrome.
Peter Hosey,
7

Skróty edytora

  • Cmd+ Ctrl+ up/downPrzechodzenie między plikami .h i .m.
  • Cmd+ Ctrl+ Left/RightPrzechodzenie między poprzednimi edytowanymi plikami / następnymi edytowanymi plikami.

Skróty układu

  • Cmd+ 0 ukryj lub pokaż nawigatory
  • Cmd+ opt+ 0 ukryj lub pokaż inspektorów
  • Cmd+ Shift+ Yukryj lub pokaż konsolę debuggera.

Skróty nawigatorów

  • Cmd+ 1 Projekt
  • Cmd+ 2 Symbol
  • Cmd+ 3 Szukaj
  • Cmd+ 4 Problem
  • Cmd+ 5 Debuguj
  • Cmd+ 6BreakPoint
  • Cmd+ 7 Log

Przełączanie kart i skakanie

  • Cmd+ { Poprzednia karta
  • Cmd+ } Następna karta
  • Cmd+ j Wybierz lokalizację do skoku
  • Shift+ Option+ ClickFile Wybierz lokalizację, aby otworzyć plik
  • Cmd+ Alt+ Option+ ClickWybierz lokalizację, aby otworzyć metodę

Inspektorzy

  • Cmd+ Opt+ 1 Inspektor plików
  • Cmd+ Opt+ 2 Szybka pomoc
  • Cmd+ Opt+ 3Inspektor tożsamości
  • Cmd+ Opt+ 4Inspektor atrybutów
  • Cmd+ Opt+ 5 Inspektor rozmiaru
  • Cmd+ Opt+ 6 Inspektor połączeń

Kompiluj powiązane

  • Cmd+ B Buduj
  • Cmd+ Shift+ K Wyczyść
  • Cmd+ . top

Kod składany

  • Cmd+ Alt+ LeftMinimalizuj bieżącą metodę / klasę / interfejs
  • Cmd+ Alt+ Right Rozwiń bieżącą metodę / klasę / interfejs
  • Cmd+ Alt+ Shift+ LeftMinimalizuj wszystkie metody / klasy / interfejsy
  • Cmd+ Alt+ Shift+ RightRozwiń całą metodę / klasę / interfejs
Spark
źródło
to nie są ukryte funkcje
Todd Hopkinson
@icnivad - wiele ukrytych funkcje są dostępne przy użyciu skrótów, jak pliki skoków, zakładka przełączania itp
Sagar R. KOTHARI
6

Oto pierwszy. Tabs! Xcode 4 zastąpił przydatny, ale rzadko używany „pasek ulubionych” Xcode 3 trwałymi zakładkami. Oznacza to, że możesz zachować działający zestaw często używanych dokumentów na pasku kart.

Nie jest to do końca ukryta funkcja jako taka - ale być może łatwo przeoczyć fakt, że karty są trwałe.

schwa
źródło
2
Ponadto, że możesz przypisać niestandardowe nazwy do zakładek, czego nie wiedziałem, dopóki Scott Stevenson o tym nie wspomniał: twitter.com/scottstevenson/status/50270610038865921
Brad Larson
5
Tak, możesz dwukrotnie kliknąć karty w Xcode 4, aby zmienić ich nazwy, a następnie użyć nazwanych zakładek w Prefs> Behaviors (via @scottstevenson)
cocoapriest
3
Och, to jest bardzo przydatne. Mogę więc skonfigurować kartę debugera / konsoli wyświetlającą tylko te, a następnie wyświetlać je podczas uruchamiania. Jest to o wiele przyjemniejsze niż ciągłe pojawianie się i opadanie.
Danilo Campos
6

Jeśli masz jakiekolwiek problemy z indeksowaniem swojego projektu (np. Symbole nie pojawiają się w autouzupełnianiu), otwórz okno Organizatora, kliknij zakładkę Projekty i użyj przycisku "Usuń", aby usunąć dane pochodne dla swojego projektu . Wymusi to przebudowę indeksu projektu, a także wyrzucenie wszelkich zbudowanych produktów.

Brian Webster
źródło
6

Oto kilka przydatnych skrótów klawiszowych do pracy na mniejszych ekranach:

  • cmd- shift- y- Ukryj i pokaż obszar konsoli / debugowania

  • cmd- 0- Ukryj i pokaż nawigację po plikach

aitskovi
źródło
6

Możesz teraz powiązać grupy w Nawigatorze projektu z folderami na dysku. Wcześniej zawsze denerwowało mnie, że widok pliku Xcode 3 może nie odzwierciedlać faktycznej struktury projektu na dysku.

Utwórz nową grupę, a następnie z podświetloną nową grupą otwórz Inspektora plików. W sekcji tożsamości po prawej stronie tuż pod „Ścieżką” znajduje się mała ikona. Kliknij ją, aby otworzyć okno dialogowe przeglądarki plików umożliwiające wybranie katalogu dla tej grupy.

Inspektor plików

Patrick
źródło
6
Co tu nowego? Zawsze możesz połączyć grupy z katalogami (Xcode 3: Command-I w grupie)
Nikolai Ruhe
5

Jeśli przytrzymasz klawisz FN, możesz przeskanować dokument za pomocą kursorów, bez przesuwania kursora

Ropucha
źródło
5

Pasek skoku:

jeśli piszesz poza funkcją:

// FIXME: A Bug
// TODO: Later
// ???: ???
// !!!: !!!
// MARK: This a mark

Będzie lubił:

Możesz również wyszukiwać:

Kliknij Option( Shiftw tym samym czasie możesz wybrać inne okno), pojawi się okno dialogowe pozwalające określić, gdzie plik powinien się otworzyć:

Kontrola źródła:

Jeśli używasz svn lub git, odrzucenie zmiany jest łatwe:

Interfejs buidler

W xcode 4.2 możesz przejść do konstruktora interfejsu tutaj:

Kliknij obiekt ui za pomocą Shift, wyświetli się lista wszystkich obiektów pod tym punktem.

Spróbuj tego: wybierz obiekt interfejsu użytkownika, przytrzymaj Option, a następnie przesuń mysz nad inne obiekty. Spodoba się:

Inny

Skrót: Shift+Command+OOtwórz szybko

Próbować:

#error message
#warning message

Przeczytaj: Pisanie i edycja kodu źródłowego

BB9z
źródło
4

Edytor tekstu :

  • Kliknięcie Cmd na nazwę klasy przeniesie Cię do pliku implementacji (lub nagłówka) tej klasy, a kliknięcie cmd na obiekcie przeniesie Cię do miejsca, w którym obiekt jest zadeklarowany.
  • Kliknięcie z wciśniętym klawiszem Alt otworzy wyskakujące okienko dokumentacji dla klikniętego obiektu.

Dodawanie ram : nie można tego po prostu zrobić, klikając prawym przyciskiem myszy projekt lub grupę (jak w Xcode 3). Musisz przejść do widoku projektu, wybrać cel i przejść do zakładki „Fazy budowy”. Strukturami można zarządzać w sekcji „Połącz pliki binarne z bibliotekami”.

Ustawianie zależności docelowych : podobnie jak powyżej, w sekcji „Zależności docelowe” na karcie „Fazy kompilacji”.

Chroń swoje archiwa - przed zainstalowaniem Xcode 4 (od 3). Stracisz je (najprawdopodobniej), a wraz z nimi utracisz zdolność do symbolizowania dzienników awarii.

Usuń działanie - OSTROŻNIE : „Usuń” (zamiast „Usuń tylko odniesienie”) bezpośrednio usuwa plik z dysku. Nie trafia do Kosza, więc nie można go odzyskać.

Nick Toumpelis
źródło
1
DELETE jest okropne. Nie mogę go odzyskać z TRASH :(
Sagar R. Kothari,
4

cmd- Jprzechodzi do edytora, ale jeśli masz więcej niż jeden otwarty edytor, otrzymasz nakładkę, która zawiera wszystkie otwarte edytory. możesz używać cmd- i cmd- do przełączania się między otwartymi edytorami.

Ponadto, jeśli masz trudności ze znalezieniem opcji lub właściwości dla czegokolwiek, okno utilites jest prawdopodobnie najlepszym rozwiązaniem:

hide and show utilities: cmd- opt-0

Rzeczy, które są tutaj często ukryte, a nie są intuicyjne:

  • właściwości jednostki modelu danych.
  • właściwości modelu danych
  • właściwości xib
Jon
źródło
4
  • Nie musisz deklarować metod IBAction w pliku .h. & Możesz podłączyć go bezpośrednio w Interface Builder.

Przykład:

-(IBAction)btnLogInTapped:(id)sender {
    // place following method in .m file of your code. save file. Open the
    // .xib file of viewController
    // click on files owner
    // click on connection-inspector.
    // you can view your methods under "received actions"
}
  • Nie musisz deklarować zmiennych , jeśli tworzysz dla niej właściwość.

Przykład:

// a property declared in .h File of your view controller.
@property (nonatomic, retain) LogInVCtr *nxtLogInVCtr;

// synthesize above property in .m File
@synthesize nxtLogInVCtr;
// or
@synthesize nxtLogInVCtr = _nxtLogInVCtr;
// and you are done, you don't need to declare variable for it.
Sagar R. Kothari
źródło
3

Jednym z moich ulubionych jest zachowanie „Otwórz kartę”. Jeśli przejdziesz do „Zachowania” w Preferencjach, możesz ustawić przechodzenie do określonej karty po rozpoczęciu biegu. Możesz nazwać kartę, coś w rodzaju „Debuguj”, a Xcode4 utworzy ją za Ciebie, jeśli nie istnieje, i przeniesie Cię tam, gdy zaczniesz debugowanie. Możesz skonfigurować tę kartę tak, jak lubisz dla sesji debugowania i pozostanie w ten sposób po jej zamknięciu, więc za każdym razem, gdy wykonasz uruchomienie, Xcode4 zostanie skonfigurowany tak, jak chcesz, w osobnej karcie. Możesz nawet oddzielić tę zakładkę do osobnego okna, w którym to przypadku Xcode4 otworzy nowe, specjalnie skonfigurowane okno „Debuguj” za każdym razem, gdy zaczniesz bieg! Ta funkcja jest świetna, ponieważ utrzymuje zwykłą kartę lub okno edycji kodu w porządku dzięki panelom dziennika i debugera. Po prostu zamknij „

Michael Gorbach
źródło
Znakomity! Dręczyło mnie to od wieków.
Imron,
2

W XCode3 była opcja „Zmień nazwę projektu”. Teraz wystarczy kliknąć dwa razy (drugie kliknięcie powoli), aby zmienić nazwę projektu i gotowe.

Sagar R. Kothari
źródło
2

Aby ograniczyć liczbę jednoczesnych operacji kompilacji

Jest to (nieco) ukryta preferencja, która pozwala zdefiniować liczbę współbieżnych zadań kompilacyjnych:

defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 4

Aby wyłączyć indeksowanie w środowisku IDE

Ten wyłącza indeksowanie kodu, co może zaoszczędzić wiele zasobów w dużych projektach:

defaults write com.apple.dt.XCode IDEIndexDisable 1

do ponownego włączenia:

defaults delete com.apple.dt.XCode IDEIndexDisable

Zauważ, że powinieneś zamknąć Xcode, ustawić wartości preferencji zgodnie z potrzebami, zmiany zaczną obowiązywać po ponownym uruchomieniu Xcode.

justin
źródło
1

Jeśli wolisz używać vim / emacs działającego na, powiedzmy, Terminalu lub jakimkolwiek innym zewnętrznym edytorze, możesz po prostu utworzyć projekt xcode, dodać pliki i tak dalej, a następnie przejść do edycji wspomnianych plików przy użyciu dowolnej edycji, która najbardziej Ci odpowiada; za każdym razem, gdy przełączysz fokus na okno xcode4, zmodyfikowane pliki zostaną ponownie załadowane (tak było również w przypadku Xcode3) i możesz zbudować / uruchomić aplikację.

markpapadakis
źródło
1

Dwa rodzaje specyfikacji lokalizacji kompilacji przy użyciu preferencji XCode4.

  1. Lokalizacja określona przez cele - katalog „Kompilacja” znajduje się w katalogu projektu.
  2. Lokalizacja w danych pochodnych (zalecane przez XCode, jak widać na zrzucie ekranu) - Katalog „Build” znajduje się w określonej lokalizacji DerivedData (np. Tutaj w moim przypadku /Users/digicorp/Library/Developer/XCode/DerivedData)

Proszę spojrzeć na poniższe zrzuty ekranu.

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Sagar R. Kothari
źródło
0

SZYBKA POMOC

Ctrl+ Option/ Alt+f

Znajdź szybką pomoc. Na przykład,

@property (nonatomic, retain) NSString *strQuery;

Mój kursor tekstowy jest na NSString& jeśli naciśnę Ctrl+ Option+,f to pokaże szybką dokumentację w inspektorze / narzędziach.

Spark
źródło