我该如何在Xcode中像在Visual Studio中一样折叠Swift代码块注释?

8
编辑:这似乎是一个错误,仅在使用Xcode和Swift组合时才会发生。 在Objective-C中,它似乎工作正常。 我发送了一个错误报告,将发布来自苹果的消息。
我在一段时间编写C ++后开始使用Xcode编程Swift 2。
但我找不到适当的方法来获取我在Visual Studio中进行注释的方式。
有时我只想注释掉一些东西,并且不想再看到它们,直到我决定否则为止,这样我就有了自由空间来思考解决问题的新方法。 这样我不会分心,更容易找到更好的解决方案。 如果我没有找到更合适的解决方案,我仍然可以在几秒钟内使用“备份”。
如何在Xcode6和Xcode7 Beta中实现这一点 - 就像我在Visual Studio中所做的那样?
这里是一个屏幕截图,说明在Visual Studio 2015中的注释:

folded

我只想要那些使用一行代码即可轻松打开并注释的小片段。
我在任何地方都没有找到这个问题的解决方法。 我只发现了一些似乎适用于旧版Xcode但现在已不再适用的方法。 请您检查最新版本的Xcode中是否适用,然后再发布它们,因为我已经得到了一些明显不再起作用的方法。

问题在于你正在使用Swift进行操作,而Swift不像Objective-C那样折叠注释。 - Rob
我制作了一个视频。Dropbox在浏览器中似乎压缩了很多。质量真的很差,但我想问题是可以识别的。 - remedy
@Rob 有没有类似的在Swift中可行的方法? - remedy
1
不,看起来这个功能在Swift代码中是有问题的。我认为值得一份错误报告。你可以做类似于if false { ... }的事情,它可以被折叠,而不是注释,但那相当笨拙。 - Rob
1
好的,我已经发送了错误报告。等我从苹果那里得到消息后,我会更新这个问题。 - remedy
显示剩余4条评论
6个回答

10
在Xcode 9中,Swift和Objective-C的注释折叠功能是通过点击注释然后按下command+option+实现的。

enter image description here

对于早期版本的Xcode,请参阅下面的原始答案。


在 Xcode 9 之前的版本中,注释折叠不适用于 Swift,只适用于 Objective-C。(原问题没有指定语言。)并且在 Xcode 8 及更早版本中,要使其适用于 Objective-C,需要在“首选项”的“文本编辑”下开启代码折叠选项。

enter image description here

在Xcode 9中,代码折叠功能始终启用,而此选项不会出现在“首选项”中。
然后,您可以通过按command+option+(或在Xcode 9之前的版本中,单击左边距的折叠区域)来折叠Objective-C注释:

enter image description here


啊,这是Swift。它在代码折叠方面的行为不同。 - Rob
1
此功能在 XC >10 中不再可用。 - MartianMartian
@Matian2049 - 在Xcode 9中,偏好设置选项不再可用,但是注释折叠现在在Swift和Objective-C中都可以使用。 - Rob
在那么小的空间里误点是很容易的,所以我禁用了超酷的阴影包围效果。 - MartianMartian
使用快捷方式更加方便。 - MartianMartian
我同意,快捷键很有意义,但默认的选项+命令+左键对于大多数用户来说已经足够了。 - Rob

5

目前(截至Xcode 7.2),您无法折叠Swift源文件。

要折叠Objective-C注释,您需要使用具有开始和结束的注释样式,如下所示:

/* Start comment
End comment */

然后,在评论开始的那一行,将光标悬停在行号旁边的小列上,并单击箭头进行折叠。再次单击箭头展开。


是的,以及折叠/展开所有注释 cmd+cntl+shift+左箭头/右箭头。 - Bamsworld
我还是做不到。我添加了一些代码以便向您展示我的问题所在。当我悬停在上面时,我找不到要点击的位置。 - remedy
你可能需要打开代码折叠功能。前往偏好设置,选择文本编辑,并查找标题为“显示:”的组。确保已选中“代码折叠功能”。我认为默认情况下可能未被选中。 - Duncan C
1
已经检查过了。我唯一能折叠的似乎只有花括号 { } 内的内容。这是某种限制吗? - remedy
是的,这些都是不正确的答案。在Swift源文件中,注释折叠从未起作用过。尽管如此,在Objective-C文件中仍然有效。希望有一天能够修复这个问题。(Xcode 7.2) - user965972

2
在Swift中,我这样解决了这个问题:
  1. 首选项 -> 文本编辑 -> 代码折叠带:勾选
  2. 使用/*..*/注释代码的一部分
  3. 将注释的代码块添加到大括号内{/*..*/}
  4. 折叠大括号内的代码。在Swift中有效。
  5. 对折叠的代码块进行注释:/*{..}*/
非常奇怪的解决方案,但有时确实有用。

1

只需将鼠标悬停在块注释开头的沟槽边缘,然后单击出现的小箭头图标。

enter image description here

同时按下 Shift++Ctrl+ 可以隐藏所有评论,按下 Shift++Ctrl+ 则会显示。


很不幸,我无法在悬停时找到可折叠的点击点。我在Xcode中附上了一些示例代码,以说明我的问题。 - remedy

0

我已经通过他们的Bug Reporter向苹果报告了此问题。他们告诉我这是一个已知问题(实际上是16188787问题的重复 - 在此帖子发布时仍然打开)。

您可以在下面看到他们的回复;

Apple Developer Relations(2016年5月5日上午7:33)

工程师已确定您的错误报告是另一个问题的重复,因此将被关闭。

您的问题所复制到的原始错误报告的打开或关闭状态显示在“重复项XXXXXXX”黄色部分中,该部分出现在右列的错误详细信息视图的顶部,仅在错误编号,标题,状态,产品和等级下方。

如果您有任何疑问或问题,请直接在此处更新您的报告:http://bugreport.apple.com/


0

我做了一个总结,对我很有用。虽然已经很晚了,但是良好的流程可以帮助编写出优秀的代码。仅适用于swift 3-4

如果你想先写伪代码再写实际代码,在注释块中写下所有内容即可。

/* 
first, use http request
in the callback, do 
a.
b.
c.
*/

那么,因为您可能会重新编写,但逻辑大多相同,因此您可能不想删除注释,这很好,但请确保它们不会阻碍您的视线,command+option+←。(看起来这是折叠它们的默认方式。) 然后当您折叠它们时,它看起来像这样:/*...

如果您不喜欢 xcode 提供的快捷键组合,则可以定义快捷键。 要定义快捷键,请转到 Xcode => Preference => Key Bindings => fold comment block

在我的情况下,我使用alt⇧ctrl{alt⇧ctrl}

然后,您可以按自己的意愿定义它,但要注意冲突。

折叠伪代码注释确实很有帮助。


只需按下 command+option+left 即可在 Xcode 9 中折叠注释。此快捷键已为您定义好。 - Rob
但它与系统快捷键冲突。 - MartianMartian
那是什么快捷方式?我没有系统快捷键是command+option+left。 - Rob
哈哈,我有点懒,所以把它定义为Swift屏幕了。你知道Mac可以有多个屏幕。如果你只用右手控制它,你仍然可以执行切换屏幕的操作,只要将其定义为command+option+left即可。 - MartianMartian
1
我只是因为你在我的答案下发表了评论才来到这里。我建议编辑你的答案,指出只有当有人定义了与Xcode冲突的系统快捷方式时,你才需要经历所有这些“创建快捷方式”的步骤。你的答案可能对那些已经这样做的人有用,但对于绝大多数用户来说,他们可以在不进行任何额外工作的情况下使用Xcode的默认选项+命令+左快捷键。 - Rob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接