2011-07-13 23 views
17

W XCode4 stwierdzam, że nie mogę uzyskać uzupełnienia kodu, aby łatwo zawęzić dla nazw metod wieloparametrowych, w których pierwsza część jest pospolita. Na przykład, należy rozważyć następujące metody z UITableViewDelegate:Uzupełnianie kodu dla wieloparametrowych nazw metod w XCode4

- tableView:viewForHeaderInSection: 
- tableView:heightForHeaderInSection: 
- tableView:accessoryTypeForRowWithIndexPath: 
... 

Lista jest długa; istnieje kilka metod, które zaczynają się od tableView. Jeśli wpisuję "tableView", lista jest długa i nie jest szybko nawigowana. Jeśli wpiszesz "tableView:", zakończenie kodu zostanie zakończone, gdy tylko wpiszesz dwukropek (:). Jeśli wpiszesz run-on, taki jak "tableViewview", zakończenie również zostanie zakończone, prawdopodobnie ponieważ nie będzie już dosłownie pasować do pierwszej nazwy nazwy części.

Czy istnieje sposób, aby ukończyć tę klawiaturę za pomocą klawiatury, nie wymyślając ani stukując ani nie klikując losowej liczby strzałek, aby poruszać się po długiej liście? Trudno mi uwierzyć, że uzupełnianie kodu dla wieloparametrowych metod Objective-C jest tak ograniczone, ale ani eksperymenty, ani dokumentacja nie dowiodły jak dotąd.

Aktualizacja dla wyjaśnienia: Przede mówię o zakończeniu deklaracji metody (na przykład w pliku .m), a nie wywołanie metody. W przypadku wywołań metod, XCode 4.x wykonuje zakończenie dla każdej części parametru metody niezależnie; to działa świetnie. Powyższy problem dotyczy tylko deklaracji, generalnie rozpoczynając pisanie nowej implementacji metody w pliku .m.

+0

Mam do czynienia z tym samym problemem! – Vasu

Odpowiedz

6

Wygląda na to, że oczekiwane zachowanie (niestety) nie jest realizowane w Xcode. Jednak znalazłem częściowe rozwiązanie: Zakończenie kod działa, gdy podasz pełny pierwszą część metody multi-parametrów, czyli po wpisaniu tego (z miejsca na końcu)

- tableView:(UITableView *)tableView 

i naciśnij klawisz ESCAPE pojawi się okno dialogowe uzupełniania kodu i będziesz mógł nadal wpisywać resztę nazwy metody.

Jesteś prawdopodobnie zastanawiasz się:

„O rany, mam naprawdę trzeba wpisać w tej długiej preambule tylko dostać mój kod zakończenia?”

Fragmenty kodu na ratunek! Trzeba tylko wpisać preambułę raz i convert it into snippet. Zauważyłem, że najlepiej jest skonfigurować go w następujący sposób, nie zapomnij dodać przestrzeni na końcu części kodu, ułatwi to pracę.

Ima

Jak należy użyć właśnie utworzony rzecz? W pliku .m zacznij pisać tabl, a Xcode pozwoli ci automatycznie uzupełnić fragment. Po umieszczeniu preambuły naciśnij klawisz ESC, aby wyświetlić listę autouzupełniania.

To rozwiązanie nie jest bardzo solidne, ponieważ musisz utworzyć fragment dla każdej wieloczęściowej metody, której chcesz użyć, ale oszczędza to trochę czasu i nie ma zbyt wielu nazw części składowych, które dzielą ten sam prefiks.

2

Przepraszam, to nie działa w ten sposób, o którym wspomniałem z numerami protokołów, które chciałem w twojej aktualizacji. Używam do tego aplikacji Accessorizer, aplikacji w sklepie z aplikacjami mac, która w pełni implementuje deklarację metod delegowania/protokołów, które chcesz zaimplementować. Mam nadzieję, że trochę pomogę.

Stary post:

używam Tab do tego. Przykład Często mam: Chcesz jednej z wielu metod init w uzupełnieniu kodu.

Następnie nie chcesz przewijać w dół lub używać wielu naciśnięć klawiszy, aby uzyskać właściwą metodę.

Hit i> hit Tab >init jest zakończona.

Ucieczka Hit a następnie w a następnie ponownie Tab dla wszystkich tych initWith metod.

Można nawet użyć Tab ⇥/Ucieczka po pierwszym parametrem, gdy jest więcej niż metoda tylko jednego parametru.

W twoim przypadku hit t> zakładka > Ucieczka > i powrót , tam masz swoją trzecią metodę. Można również przeskoczyć do poprzedniego argumentu zakończenia kodu, używając Shift Tab + Tab .

Powiązane problemy