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

问题描述 投票:17回答:3

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

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

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

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

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

xcode xcode4 code-completion
3个回答
6
投票

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

- tableView:(UITableView *)tableView 

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

你可能想知道:

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

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

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

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


4
投票

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

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


2
投票

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

老帖子:

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

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

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

点击Escape⎋然后再w,然后再次Tab⇥所有这些initWith方法。

你甚至可以在第一个参数之后使用Tab⇥/Escape⎋,当只有一个参数的方法不止时。

在你的情况下点击t> Tab⇥>逃生⎋> a和返回↩,你有第三种方法。您也可以使用Shift⇧+Tab⇥跳转到上一个代码完成参数。

© www.soinside.com 2019 - 2024. All rights reserved.