无法在Xcode中拖拽(创建代码片段)

82

当我按照所有指示(包括苹果公司的视频)在Xcode中拖动文本以创建代码片段时,我得到了不同的系统行为:我只看到选定的光标,无法拖动。它最终只是再次选择文本。我是否遗漏了一些明显的苹果特色?谢谢。


在Xcode 8上遇到了这个问题,但是在Xcode 9上可以正常工作。 - onmyway133
天哪。你需要仔细地将鼠标放在实际选择的文字上方。如果你点击空白处,即使它被突出显示,也会全部取消选择。这太愚蠢了。有无数种方法可以让选择消失。为什么要让这个有用的拖动操作变得如此困难呢? - Dirk Bester
使用触控板上的力触控功能,可以拖动选择的文本。 - Mohsen Fard
6个回答

148

我也遇到了同样的问题,苹果式似乎是这个问题的一个好词汇 :)

方法如下:

  • 选择(或高亮)您想要转换为代码片段的代码
  • 编辑:单击并保持不动(不要拖动!)所选文本的任何部分短暂时间(如2秒,有时8秒)
  • 编辑:鼠标指针将更改图标(在 El Capitan 上不会更改)。
  • 现在您可以将代码拖到代码片段库上,此处将出现一个绿色 + 图标。编辑:在El Capitan上,绿色图标不会出现,但代码片段窗口的框架会变窄。

3
按照这些指示,我失败的次数比成功的次数还要多。我不明白为什么拖放一些文本会这么难。此外,用于创建代码片段的用户界面可以得到很大改善。这是一个极其笨拙的管理代码片段的方式。 - Erik B
1
如果您使用触控板,可以使用三指拖动手势(https://support.apple.com/zh-cn/HT204609)代替步骤2和3。 - flochtililoch
4
在运行10.11 El Capitan和7.2 Xcode的带有Force Touch触控板的Macbook上,选择文本的解决方案是:点击并按住文本,然后拖动到片段库中。但需要注意的是:必须在所选文本右侧的空白处单击,当你按住时,光标不会改变。我数到3,然后拖动。这相当可靠,尽管我经常忘记点击空白处;) - Dribbler
1
我的问题是我没有等待足够长的时间。光标变化需要8秒钟,而不是通常的2秒钟。 - Chris Garrett
4
在xcode 8 / macos sierra中,我需要花费10秒钟才能激活!光标从“I-beam”变成了普通箭头光标。这是怎么回事?这肯定是苹果设计的最隐秘的用户界面互动之一。为什么不只是做一个“创建片段”的按钮,让我粘贴代码呢? - mpoisot
显示剩余8条评论

14

我也遇到过这个问题,所提供的解决方案并没有起作用,但仍然需要创建代码片段。

虽然这是一种解决方法,但不是最好的选择,但它有效。

  1. 从Xcode中选择代码片段窗口,并使其处于选中状态。
  2. 打开文本编辑器应用程序。
  3. 从Xcode中选择并复制要使用以创建代码片段的代码。
  4. 将其粘贴到您的文本编辑器中,然后选择全部内容。
  5. 现在从文本编辑器正常拖放到Xcode中的代码片段窗口中。

如上所述,这不是最佳选择,但它有效。

(适用于Xcode 8.1的注释)有时选择文本并保持鼠标按钮单击3..8秒钟,光标会变成箭头,可以执行拖放操作。很遗憾,它只能有时候工作...


1
如果您是 Windows 用户,尽管您的评论,我怀疑问题可能是以下原因,因为上面的解释稍微有些不足。拖动技术需要我被告知的完全常规和预期的 Mac 拖放方法:在 1) 选择(突出显示)一些文本,然后 2) 点击它以准备拖动之后,必须等待大约 1/4 秒才能实际移动鼠标进行拖动。我相信显示器会给出一些反馈提示。在 Windows 中,不需要进行 1/4 秒的延迟。请回报。谢谢 - Jack Bellis
1
杰克,我是Mac用户。可能存在一个由Apple尚未修复的错误。一些用户(包括我在内)可以在其系统中使用“拖放”而没有问题。然而,在Xcode内部,特别是“选择文本,等待光标变为箭头等”时,可能会发生拖放不起作用的情况。因此,我认为这个解决方法虽然不是最佳选项,但在这个错误被修复之前是有效的。 - MLBDG
我发现使用第二个应用程序是唯一可行的方法。为什么没有按钮苹果?或许是快捷方式,拖放... 不必要。 - WCByrne

9
在High Sierra 10.13.3和XCode 9上,我遇到了同样的问题。对我有效的解决方案是在第一个符号之前的空白处选择代码,然后将其拖到片段库中。
重要提示:您只需从空白处拖动(请参见下面的截图)。否则,您将再次重新选择代码。
光标仅在开始拖动时更改,因此不要感到困惑,也不要等待它发生变化。

enter image description here


2

我在Mac OS X 10.11.2(El Capitan)上使用Xcode 7.2时遇到了这个问题。选定文本后,光标从I-beam形状变成箭头形状以进行拖动的操作没有发生。

虽然MLBDG的答案是一个可用的解决方法,但我发现退出并重新启动Xcode可以解决这个问题。如果你遇到困难,这个方法可能不适用于每个人,但值得一试。


0
  1. 只需将文本高亮显示
  2. 复制到片段库底部可见的过滤文本字段中
  3. 粘贴文本
  4. 现在选择文本并从那里拖动到片段库

0

答案真的是非常不明显。你需要选择一段文本。然后点击实际的文本字符,但不要移动鼠标。只有这样,XCode之神才会赐予你一个可拖动的代码片段,供你随意使用。如果你不小心错过了文本,点击了空白但已选中的区域,XCode的恶魔将取消你的选择,并让你从头开始。不幸的是,很多人甚至没有意识到这个功能实际上是存在的。

按住Option键可以复制它。例如,可以复制一个case语句而不破坏你的剪贴板,然后在搜索期间替换你巧妙准备好粘贴的case。

作为一个UI设计师,对我来说,为什么这个实现如此不可靠和敏感并不明显。


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