Xcode是否支持类似于任意代码折叠的Visual Studio样式#region指令的任何内容?

有帮助吗?

解决方案

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

但是,您可以通过功能菜单更轻松地使用小技巧进行导航。

#pragma mark

允许您创建一个分组,其中标记后面的标记将显示在功能菜单中。如果标签是连字符,则会在功能菜单中插入分隔符。

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

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

显然,因为#pragma mark不是真正可移植的,如果你正在构建一个可移植的应用程序并且需要它与编译器一起工作,而编译器不仅忽略它不理解的#pragma指令,那么注释样式标记是一个不错的选择。

其他提示

我会为此而下地狱,但这里是:

在给定文件的顶部,输入

#define FOLD 1

无论你想折叠什么东西,都要将它包装在if块中,如下所示:

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

这会让你把它折叠在视线之外。

这不适用于您最想要的地方,即功能或方法组。

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

if(fold)完全是多余的。只需在方法或函数中使用大括号,Xcode就可以折叠它们。

尝试这种方式:

//region title1
{
    //region Subtitl1
    {

    }
    //region Subtitl2
    {

    }
}

它可以这样做:

如果不支持.Net样式区域,能够同时折叠所有功能是最好的选择。

command - 选项 - shift - 左箭头 崩溃了。

command - 选项 - shift - 右箭头 扩大所有。

Xcode将记住折叠函数的最后状态。

将您想要的代码放在方括号{}中,它将成为折叠区。

但是你必须记住,括号也定义了变量范围,所以这段代码不应该有变量声明,这些声明将在这些括号之外使用。

我刚发现的一个很好的解决方案:

将您的项目放入一个大的命名空间。 关闭并重新打开源文件的各个部分的此命名空间:

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top