Завершение кода для многопараметрических имен методов в XCode4

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

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

Список продолжается; существует довольно много методов, которые запускают tableView. Если я набираю "tableView", список длинный и не быстро перемещается. Если я наберу "tableView:", завершение кода завершается, как только я набираю двоеточие (:). Если я набираю run-on, например "tableViewview", завершение также завершается, по-видимому, поскольку оно больше не соответствует буквально первой части имени метода.

Есть ли какой-то способ завершить работу с помощью клавиатуры в таком списке, не прибегая ни к нам, ни к соприкосновению случайного числа попаданий стрелок для навигации по длинному списку? Я с трудом верю, что завершение кода для многопараметрических методов Objective-C настолько ограничено, но пока ни эксперименты, ни документация не доказали.

Обновление для пояснения: выше Я имею в виду завершение объявления метода (например, в файле.m), а не вызов метода. Для вызовов методов XCode 4.x выполняет завершение для каждой части параметра метода независимо; это отлично работает. Проблема выше применима только к объявлениям, обычно при запуске записи новой реализации метода в файле.m.

Ответ 1

Кажется, что поведение, которое вы ожидаете (к сожалению), не реализовано в Xcode. Тем не менее, я нашел частичное решение: завершение кода работает, когда вы указываете полную первую часть многопараметрического метода, то есть, если вы наберете это (с пробелом в конце)

- tableView:(UITableView *)tableView 

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

Вы, наверное, задаетесь вопросом:

"О, мальчик, действительно ли мне нужно вводить эту длинную преамбулу, чтобы получить мой код?"

Фрагменты кода на помощь! Вам просто нужно ввести преамбулу один раз и преобразовать ее в фрагмент. Я нашел, что лучше всего настроить его следующим образом: не забудьте добавить место в конце части кода, это упростит ситуацию.

Ima

Как вы должны использовать то, что только что создали? В вашем файле.m начните вводить tabl а Xcode позволит вам автозаполнять фрагмент для вас. После размещения преамбулы нажмите ESC, чтобы открыть список автозаполнения.

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

Ответ 3

Извините, это не работает таким образом, о котором я упоминал с заглушками протокола, как вы хотели в своем обновлении. Я использую Accessorizer для этого приложения в магазине приложений для Mac, чтобы полностью реализовать объявление ваших методов делегирования/протокола, которые вы хотите реализовать. Надеюсь, что поможет немного.

Старый пост:

Для этого я использую Tab . Например, я часто бываю: вам нужен один из многих методов init в завершении кода.

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

Hit i> нажать вкладку > init завершен.

Hit Escape , а затем w, а затем Tab для всех этих initWith.

Вы можете даже использовать Tab ⇥/Escape после первого параметра, когда есть больше, чем метод только с одним параметром.

В вашем случае нажмите t> Tab > Escape > a и Return , там у вас есть третий метод. Вы также можете перейти к предыдущему аргументу завершения кода с помощью Shift + Tab .