Xcode地区

Xcode是否支持类似于Visual Studio风格#region指令的任意代码折叠?

不,您只能在Xcode中的各种定义的范围级别上折叠代码。

不过,您可以使用一些小技巧,通过function菜单进行导航。

 #pragma mark 

允许您创build一个分组,标签下面的标记将显示在function菜单中。 如果标签是连字符,则将分隔符插入到function菜单中。

此外,注释中的以下标签将显示在function菜单中:

 // MARK: // TODO: // FIXME: // !!!: // ???: 

很显然,因为#pragma标记并不是真正的可移植的,所以如果你正在构build一个可移植的应用程序,并且需要它使用一个不会忽略它不理解的#pragma指令的编译器,评论风格标记是一个体面的替代。

我要去这个地狱,但这里是:

在给定的文件的顶部,放

 #define FOLD 1 

无论你想折叠什么东西,把它包装在一个如下块如下:

 if(FOLD) { // your code to hide // more code } 

这可以让你把它折叠起来。

那不适合你最想要的地方,也就是围绕着一组function或方法。

在没有内部条件或循环的长线性方法中,这可能是有用的,但是这样的方法在一般的Mac OS X UI代码中并不常见,但是如果你正在编写一些大的数字或graphics处理代码,它可以帮助组的东西。

如果(折叠)是完全多余的。 只要在方法或函数中使用大括号,Xcode就会折叠它们。

试试这个方法:

 //region title1 { //region Subtitl1 { } //region Subtitl2 { } } 

它可以这样做:

它可以这样做:

如果不支持.Net风格的地区,可以同时合并所有的function,这是最好的select。

命令选项移位左箭头折叠全部。

命令选项移位右箭头展开全部。

Xcode会记住折叠函数的最后一个状态。

将所需的代码放在括号{}中,它将成为折叠区域。

但是你必须记住,括号还定义了variables作用域,所以这段代码不应该有variables声明,这些variables声明将被用在这些括号之外。

我刚刚find一个很好的解决scheme

把你的项目放到一个大的命名空间中。 closures并重新打开源文件各个部分的命名空间:

 namespace myproj { // members of class MyClassA void MyClassA::dosomething() { } void MyClassA::dosomethingelse() { } } // members of class MyClassA namespace myproj { // members of MyClassB void MyClassB::dosomething() { } void MyClassB::dosomethingelse() { } } // members of MyClassB