【问题标题】:How can I fold blocks of comments in Swift using Xcode the way I do it in Visual Studio?如何像在 Visual Studio 中那样使用 Xcode 在 Swift 中折叠注释块?
【发布时间】:2015-09-14 20:22:20
【问题描述】:

编辑:这似乎是一个仅在将 Xcode 与 Swift 结合使用时发生的错误。在 Objective-C 中,它似乎工作正常。我发送了一份错误报告,并将发布来自苹果的消息。

在 Visual Studio 中编写 C++ 一段时间后,我开始在 Xcode 中编写 Swift 2

但我找不到像在 Visual Studio 中那样获取 cmets 的正确方法。

有时我只是想评论一些事情并且不想再看到它们直到我另有决定所以我有空闲空间思考解决问题的新方法。这样我就不会分心,更容易找到更好的解决方案。如果我没有找到更合适的解决方案,我仍然可以在几秒钟内使用“备份”。

我怎样才能在 Xcode6 和 Xcode7 Beta 中实现这一点 - 我在 Visual Studio 中已经做到了?

这是一个说明在 Visual Studio 2015 中进行评论的屏幕截图:

我只想要这些使用一行代码并且可以轻松打开和取消注释的小sn-ps。

我在任何地方都没有找到解决此问题的方法。我只发现了一些似乎在 Xcode 的 版本中有效但不再适用的方法。请善待并在您发布它们之前在您最新版本的 Xcode 中检查它们,因为我已经找到了一些显然不再有效的方法。

【问题讨论】:

  • 张贴显示评论区左侧区域和评论的屏幕截图。
  • 问题是你在 Swift 中做这个,它不像 Objective-C 那样折叠 cmets。
  • 我做了一个视频。我猜 Dropbox 似乎在浏览器中压缩了很多。质量真的很差,但我想问题是可以识别的。
  • 不,看起来这个功能在 Swift 代码中被破坏了。值得bug report,恕我直言。你可以做if false { ... }之类的东西,可以折叠,而不是评论,但这很笨拙。
  • 好的,我发送了错误报告。当我有来自苹果的消息时,我会更新这个问题。

标签: xcode swift


【解决方案1】:

在 Swift 和 Objective-C 中的 cmets 折叠在 Xcode 9 中工作,通过单击注释然后按 command+option+←.

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


在 Xcode 9 之前的 Xcode 版本中,注释折叠不适用于 Swift,而仅适用于 Objective-C。 (并且最初的问题没有指定语言。)为了让它在 Xcode 8 及更早版本中与 Objective-C 一起使用,您需要在“首选项”中的“文本编辑”下打开代码折叠选项:

(在 Xcode 9 中,代码折叠始终处于启用状态,并且此选项不会出现在 Preferences 中。)

然后您可以通过按 command+option+ 来折叠 Objective-C cmets(或者在 9 之前的 Xcode 版本中,您可以点击左边的折叠区域):

【讨论】:

  • 啊,是斯威夫特。它对代码折叠的行为有所不同。
  • 这在 xc >10 中不再可用
  • @Matian2049 - Xcode 9 中不再提供首选项选项,但 cmets 的折叠现在在 Swift 和 Objective-C 中都可以使用。
  • 在那么小的空间里很容易误点击;我禁用了超酷的阴影封闭物。
  • 使用快捷方式更方便
【解决方案2】:

目前(从 Xcode 7.2 开始),您不能折叠 Swift 源文件。

要折叠 Objective-C cmets,您需要使用具有如下开头和结尾的注释样式:

/* Start comment
End comment */

然后,在注释开始的行上,将光标悬停在行号旁边的小列上,然后单击箭头将其折叠。再次单击箭头将其展开。

【讨论】:

  • 是并折叠/展开所有 cmets cmd+cntl+shift+左箭头/右箭头
  • 我还是做不到。我附加了一些代码来告诉你我的问题到底在哪里。当我将鼠标悬停在某个位置上时,我找不到可以点击的位置。
  • 您可能需要打开代码折叠功能区。转到首选项,文本编辑,然后查找标题为“显示:”的组。确保选中“代码折叠色带”。我认为它可能默认未选中。
  • 已经检查过了。我唯一可以显然折叠的东西是在大括号 {} 内。这是某种限制吗?
  • 是的,这些都是不知情的答案。注释折叠从来没有在 Swift 源文件中工作过。不过,它仍然适用于objective-c 文件。希望有一天这会得到解决。 (Xcode 7.2)
【解决方案3】:

在 Swift 中,我以这样的方式解决了这个问题:

  1. 首选项 -> 文本编辑 -> 代码折叠功能区:检查
  2. /*..*/注释部分代码
  3. 在大括号{/*..*/}内添加注释代码块
  4. 将代码折叠在大括号中。它适用于 Swift。
  5. 评论这个折叠的代码块:/*{..}*/

非常奇怪的解决方案,但有时会有所帮助。

【讨论】:

    【解决方案4】:

    只需将鼠标悬停在块注释开始处的装订线边缘,然后单击出现的小箭头图标。

    同时按 Shift++Ctrl+ 将隐藏所有 cmets 和 Shift++Ctrl+将显示。

    【讨论】:

    • 不幸的是,当我将鼠标悬停在它上面折叠它时,我找不到一个可以点击的点。我附上了一些示例代码来说明我在 Xcode 中的问题。
    【解决方案5】:

    我已通过他们的 Bug Reporter 向 Apple 报告了这一情况。他们告诉我这是一个已知问题(实际上是问题 16188787 的副本 - 截至本文发布时仍开放)。

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

    Apple 开发者关系(2016 年 5 月 5 日上午 7:33)

    工程部门已确定您的错误报告与 另一个问题,将被关闭。

    您的问题的原始错误报告的打开或关闭状态是 复制到出现在黄色的“XXXXXXXX 复制”部分 错误报告器用户界面。此部分出现在顶部附近 右侧列的错误详细信息视图,就在错误编号、标题、 状态、产品和排名。

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

    【讨论】:

      【解决方案6】:

      我做了一个总结,它对我有用。已经很晚了,但是好的流程有助于编写好的代码。仅限swift 3-4

      如果您想在实际代码之前先编写伪代码,您可以将所有内容都写到注释块中

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

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

      如果您不喜欢 xcode 提供的组合键,您可以定义一个快捷方式。
      要定义快捷方式,请转到 Xcode => Preference => Key Bindings => 折叠注释块

      就我而言,我使用 alt⇧ctrl{alt⇧ctrl}

      然后随心所欲地定义它,但要小心冲突。

      折叠伪代码 cmets 真的很划算

      【讨论】:

      • 只需按 command+option+left 即可在 Xcode 9 中折叠 cmets。此快捷方式已为您定义。
      • 但它与系统快捷方式冲突。
      • 那是什么快捷方式?我没有命令+选项+左的系统快捷方式。
      • 大声笑,我很懒,将其定义为快速屏幕。你知道mac可以有多个屏幕。如果你只是用右手控制它,如果它被定义为command+option+left,你仍然可以执行切换屏幕
      • 我来这里只是因为您对我的回答发表了评论。我建议编辑您的答案,指出如果有人定义了与 Xcode 冲突的系统快捷方式,您只需要完成所有这些“创建快捷方式”的内容。您的回答可能对这样做的人有用,但对于可以使用 Xcode 的默认选项 + 命令 + 左快捷方式而无需额外工作的绝大多数用户来说,这会产生误导。
      猜你喜欢
      • 2015-08-23
      • 2010-11-20
      • 2019-04-29
      • 2020-02-01
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      相关资源
      最近更新 更多