41

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

4

8 回答 8

57

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

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

#pragma mark

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

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

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

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

于 2008-11-13T22:12:05.063 回答
15

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

在给定文件的顶部,放

#define FOLD 1

无论你想在哪里折叠东西,把它包裹在一个 if 块中,如下所示:

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

这会让你把它折叠起来看不见。

于 2009-04-04T08:13:09.773 回答
4

这在您最想要的地方不起作用,即围绕函数或方法组。

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

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

于 2009-04-04T17:02:38.317 回答
2

试试这种方式:

//region title1
{
    //region Subtitl1
    {

    }
    //region Subtitl2
    {

    }
}

它可以这样做:

它可以这样做:

于 2014-04-24T04:11:16.277 回答
1

在不支持 .Net 样式区域的情况下,能够同时折叠所有功能是下一个最好的选择。

command- option- shift-left arrow 全部崩溃。

command- option- shift-right arrow 展开全部。

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

于 2016-09-09T16:20:33.190 回答
1

XCode 12(可能之前)中的一个有用选项是首选项“代码折叠功能区”中的一个选项

代码折叠丝带

当你检查它时,源代码看起来像这样

代码中的功能区

当您将鼠标悬停在此功能区上时,您将获得基于括号的可折叠区域,如下所示

可折叠丝带

当您单击功能区时,它会折叠括号区域,如下所示

折叠丝带

它不像 Visual Studio 中的区域,您可以将它们放置在任何您想要的位置,但它们足以整理您的代码文件。

于 2020-11-17T22:13:02.150 回答
0

把你想要的代码放在括号 { } 里面,它就会变成一个折叠区。

但是您必须记住,括号也定义了变量范围,因此此代码不应包含将在这些括号之外使用的变量声明。

于 2013-03-31T07:37:30.720 回答
-3

我刚刚发现的一个不错的解决方案:

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

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
于 2012-06-20T09:09:34.563 回答