Xcode方法导航

Xcode方法导航,xcode,Xcode,在Xcode 4中,我可以按Ctrl-6来获取当前文件中所有方法的列表 问题是,如果我在实现文件的顶部声明了私有方法,比如: @interface Foo () -(void)tap:(id)sender; @end @implementation Foo ... -(void)tap:(id)sender { ... } 然后在方法列表可见的情况下开始键入“tap”只会带我去声明,因为它位于文件的第一位,而我真正想要的是实现 有没有办法从方法列表中排除这些声明,或者我是否需要使

在Xcode 4中,我可以按Ctrl-6来获取当前文件中所有方法的列表

问题是,如果我在实现文件的顶部声明了私有方法,比如:

@interface Foo ()

-(void)tap:(id)sender;

@end

@implementation Foo

...

-(void)tap:(id)sender
{
  ...
}
然后在方法列表可见的情况下开始键入“tap”只会带我去声明,因为它位于文件的第一位,而我真正想要的是实现

有没有办法从方法列表中排除这些声明,或者我是否需要使用单独的
Foo.h
Foo+Private.h
标题


谢谢

通常,最好为私有方法添加一个命名类别:

#import "Foo.h"

@interface Foo( Private )
    - ( void )tap: ( id )sender;
@end

@implementation Foo( Private )
    - ( void )tap: ( id )sender
    {}
@end

@implementation Foo
    ...
@end
然后你会看到每一个。它可能无法回答您的问题,但至少您会看到您的方法

还有一件事是使用
mark
pragmas组织方法:

#pragma mark - Private methods
可能会帮助您浏览完成对话框。。。
希望这有帮助…

我认为没有办法从文档项弹出窗口中排除方法声明

但是,如果您养成了使用代码折叠的习惯,那么您可能不会太依赖于弹出窗口来导航源代码。有用于折叠方法和注释块的命令,您可以使用一个快捷方式折叠所有方法(默认情况下,命令选项shift left arrow可折叠,-right arrow可展开,当然您可以自定义键)。有关相关命令的完整列表,请参见编辑器->代码折叠子菜单


当你在一个.m文件中折叠所有的注释和方法时,你剩下的几乎就是一个方法列表,这样你就很容易找到你想要的。然后,您可以通过另一次击键来展开该方法或所有方法。当您第一次开始使用折叠时,看到所有代码都消失了,这有点奇怪,但这是一个非常方便的功能。

您不需要声明您的私有方法,默认情况下也不会再收到警告。因此,一个选择是根本不声明原型

否则,正如curthipster提到的,ctrl-6是一个很好的快捷方式。我一直在使用它(不需要鼠标):

  • 按ctrl-6键
  • 键入方法名称的前几个字母(或者它包含的一个单词,您甚至不必当场拼写它,搜索过滤器非常好!)
  • 轻触直到选择该方法
  • 轻触进入

  • 或者使用cmd alt enter打开助手(要关闭,请使用cmd enter,)。您可以让助理编辑器查看同一个文件,例如,它在顶部有一部分视图,在底部有一部分视图。

    好问题。但愿我能给你一个答案。您是如何了解CTRL-6的?作为一名长期使用Eclipse的用户,我一直对Eclipse中缺少键盘快捷键支持感到沮丧XCode@colbeerhey是一个很好的总结,尽管它不包括Ctrl-6。我知道Ctrl-2在Xcode 3中做了同样的事情,所以我只是在Xcode 4中尝试了各种Ctrl-n,直到我发现了一些有效的方法。这就是Show Document Items命令。如果您转到查看->编辑器,您将看到相关命令及其快捷方式的列表。您可以在Xcode首选项的键绑定部分自定义任意多的快捷方式。另一方面,如果您忘记实现类别的方法,您将不会再收到编译器警告(“Foo不响应tap:”)(这是使用“空”类别的好处之一).这是一个很好的观点-我将尝试代码折叠,看看是否错过了Ctrl-6。谢谢你的提示!很乐意帮忙。不要忘记,如果您在代码中的某个地方看到某个方法,您可以直接跳转到该方法的定义。您可以控制单击并跳转到定义,或者将光标放在方法上并使用快捷方式,默认情况下为command-control-D。