Xcode 4中多参数方法名称的代码完成

时间:2011-07-13 01:12:49

标签: xcode xcode4 code-completion

在Xcode4中,我发现在第一部分很常见的多参数方法名称中,我无法完成代码完成。例如,请考虑UITableViewDelegate中的以下方法:

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

名单还在继续;有很多方法可以启动tableView。如果我输入“tableView”,列表很长并且不能快速导航。如果我输入“tableView:”,则在输入冒号(:)后立即退出代码完成。如果我键入一个run-on,例如“tableViewview”,则完成也会退出,大概是因为它不再与第一个方法名称部分字面匹配。

是否有某种方法可以通过键盘在这样的列表上完成而无需左右摇动或咔哒一声随机数量的箭头键命中来导航长列表?我很难相信多参数Objective-C方法的代码完成是如此有限,但到目前为止,实验和文档都没有证明是有启发性的。

更新澄清: 上面我指的是方法声明的完成(例如在.m文件中),而不是方法调用。对于方法调用,Xcode 4.x独立完成每个方法参数部分;这很棒。上述问题仅适用于声明,通常在开始在.m文件中编写新方法实现时。

3 个答案:

答案 0 :(得分:6)

看起来你所期望的行为(遗憾的是)并未在Xcode中实现。但是,我找到了一个部分解决方案:当您指定多参数方法的完整第一部分时,即如果您键入此内容(末尾有空格),代码完成就会起作用

- tableView:(UITableView *)tableView 

并按ESCAPE键,然后将出现代码完成对话框,您将能够继续键入方法名称的其余部分。

你可能想知道:

  “哦,孩子,我真的必须输入这个长长的序言才能获得   我的代码完成了?“

代码片段拯救!您只需输入一次前导码convert it into snippet即可。我发现最好按照以下方式配置它,不要忘记在代码部分的末尾添加空格,它会使事情变得更容易。

Ima

你应该如何使用你刚创造的东西?在.m文件中开始输入tabl,Xcode会让您自动填写代码段。放置前导码后,按ESC键显示自动完成列表。

这个解决方案不是很健壮,因为你必须为你想要使用的每个多部分方法创建一个片段,但它确实节省了一些时间,并且没有那么多的多部分方法名称共享相同的前缀。

答案 1 :(得分:4)

很长一段时间,我对这个问题感到恼火。现在我可以验证即使在最新的Xcode 5中也没办法,我提交了一个错误报告:
Multi-parameter method declaration completion in Xcode

如果你也想要它,请复制它。

答案 2 :(得分:2)

哦对不起,它不像我在你的更新中提到的协议存根那样提及。 我使用 Accessorizer ,这是mac app store中的一个应用程序,可以完全实现您要实现的委托/协议方法的声明。希望有所帮助。

旧帖子:

我使用Tab 。 示例我经常有: 您需要代码完成中的许多init方法之一。

然后你不想向下滚动或使用许多击键来获得正确的方法。

点击 i >点击Tab > init已完成。

点击Escape 然后 w 然后再次使用Tab 获取所有这些initWith方法。

您甚至可以在第一个参数 后使用 Tab⇥ / Escape ,只有一个参数的方法多于

在您的情况下,点击 t >标签>逃脱> a 并返回,你得到了第三种方法。 您还可以使用Shift + Tab 跳转到上一个代码完成参数。