将粘贴文本复制到 iOS 模拟器中

肯定有记录,但我找不到。

在我使用 iPad 模拟器的应用程序中,有一个文本字段,我希望用户粘贴文本。在现实世界中,用户将把文本从 Safari 地址复制到 textfield 中。但是我试图在 ios 的 ipad 模拟器中做到这一点,但是只得到了部分结果。

重新运行应用程序后,我可以立即用 Mac 的 Edit|Paste Text菜单或 Shift-Command-V 将文本粘贴到文本字段中(但不仅仅是用 Edit|Paste,不过没关系)。需要的转移是恼人的,但我可以忍受它。

但是如果我尝试在 Mac 上复制另一个 URL,然后在模拟器上使用 Edit|Paste Text或者甚至使用 Paste气泡,我得到的不是新文本,而是原始文本。

这很常见吗?这是模拟器的一个特点,它没有连接到主机上的剪贴板的现场?

97898 次浏览

要小心避免将 Mac 的剪贴板与模拟器的剪贴板混为一谈。它们是不一样的。

这个模拟器正在模拟一个 iOS 设备,它有自己的 iOS 剪贴板,在这个设备上运行的应用程序(模拟器)可以通过 iOS pup select-all/copy/粘贴 UI 条目使用这个剪贴板。

与此完全不同的是: 你的 Mac 有自己的剪贴板和内容。在 Mac 上运行的 Simulator 程序提供了 Edit > Paste Text 菜单项。程序通过访问 Mac剪贴板和 将文本输入模拟器来实现该菜单项,就像用户使用键盘一样。IOS 剪贴板既不访问也不受 Simulator 应用程序的 Edit 菜单功能的影响。

更新: 从 Xcode 6开始,你需要在 iOS 模拟器中选择 Edit > Paste菜单项(在 Mac 剪贴板和 iOS 剪贴板之间传输数据) ,然后点击模拟器中的字段并点击“粘贴”泡泡。

在您的问题中,您没有指定从哪个“ Safari”复制 URL。它可以是 Mac safari 应用程序或 模拟器 safari 应用程序。从 mac safari 程序复制到 mac 剪贴板,从 safari 应用程序复制到模拟器中的 iOS 剪贴板。

我认为你的问题来自于混淆了这两者,认为有一个剪贴板所有的东西都是共享的。

有时在 iOS 模拟器中输入长 URL 是非常困难的。应该有一些方法可以将 URL 从 Max OS 复制到 iOS 文本字段。 你可以这样做:

  • 从 Mac 那复制一些短信
  • 打开模拟器并单击要粘贴的文本字段 短信
  • 现在在模拟器菜单上单击 Edit-> Paste Text

就是这样,你从 Mac OS 拷贝缓冲区得到的文本应该出现在 iOS 模拟器的文本字段中。

在 mac 上复制文本,然后单击模拟器中的文本字段并按下

移位指令 V

对我有用的是这个。

1)从 Mac 复制文本

2)在模拟器中进行编辑-> 粘贴或命令 V (我认为这将文本从 Mac 剪贴板复制到 iOS 模拟器剪贴板)。

3)在模拟器中突出显示文本字段,然后执行命令 + Shift + V。

这对我很有用。在 Safari 版本8.0.3和 IOs 模拟器版本8.1上

  1. 从 Safari 复制文本-突出显示文本,然后 cmd-v 或编辑 > 复制。
  2. 在 Ios 模拟器中单击“编辑”> “粘贴”。
  3. 在 TextField 或 TextView 上右击,然后选择粘贴。

三个步骤: (关键是确保 “粘贴”帮助菜单在使用“ something + V”时保持可见。)

  1. 确保在模拟器中选择要经过的点,并使用 “粘贴”是表演编辑菜单。
  2. 使用 Mac 上的键盘“ Something + V”将文本粘贴到模拟器剪贴板中。
  3. 单击上面显示的 edit 菜单上的“粘贴” ,将文本粘贴到模拟文本字段中。

enter image description here

这是我找到的。

  1. 从 Mac 复制文本。
  2. 在模拟器中打开 Safari 并通过单击高亮显示地址栏。
  3. 按 Cmd + V
  4. 点击地址栏一次。
  5. 将出现粘贴下降。
  6. 点击粘贴。

Shift + Cmd + V 也很好用。

Something + V: 当 iOS 模拟器在前面时,将 OS X 剪贴板的内容复制到 iOS,但不粘贴它。同样,这对文本和图像都适用。
所以你需要这样做:
1. 复制文本到 MacOS 中除了 iOS 模拟器之外的任何地方。
在 iOS 模拟器中,单击 something + V,将文本从 macOS 剪贴板复制到 iOS 模拟器的剪贴板。
在 iOS 模拟器中,TextField 或 TextView 单击-> 编辑-> 粘贴。

请在模拟器编辑选项中点击“自动同步粘贴板”选项。

enter image description here

我发现即使在 编辑 > 自动同步硬纸板上打勾,这个功能也不起作用。

然而,简单的取消勾选,然后重新勾选此选项固定的功能!

希望对谁有用。

在一个新的模拟器,我得到没有“粘贴”选项和同步不工作的模拟器。 似乎在模拟器中,你必须在同步实际工作之前将一些东西拷贝到内部剪贴板上。

我更新到了 os x 10.13.6和 xcode 10.1,并且在 edit中增加了一个菜单

单击 get pasteboard,然后您将能够通过粘贴模拟器中的工具提示粘贴

Xcode 10.0 + :

关闭自动纸板同步,然后再次打开解决了这个问题。

你可能需要多次这样做。 有时由于某些原因需要一段时间才能触发它。

(编辑-> 自动同步)

有时候你只需要选择 硬件-> 重置内容和设置 在模拟器菜单中。 然后所有工作自动简单和透明的工作在 MacOS 与其他应用程序

类似的事情发生在我身上,我发现了一个奇怪的变通方法,它可以帮助任何其他人可能遇到同样的问题。尝试以下步骤:

  1. 禁用,然后重新启用 Automatically Sync Pasteboard选项,它在模拟器的 Edit菜单下
  2. 从 Mac 上复制您想要的文本
  3. 将文本再次粘贴到 Mac 上的文本编辑器(如 Atom 或浏览器的地址栏)上
  4. 选择所有文本 Cmd+A,然后剪切/复制 Cmd+X/Cmd+C
  5. 您现在应该能够将文本粘贴到模拟器上

这些方法对我都不管用。我用的是模拟器11.4。在尝试了这些方法之后,我意识到我所需要做的就是使用 Command + C 在我的 Mac 上复制一些东西,然后在模拟器的文本框中,只要按住鼠标点击一两秒钟,粘贴菜单就会自动弹出,而且效果很好。

enter image description here

上面的解决方案对我没有任何效果。我使用的是 M1 Apple。有效的是这个线程 https://github.com/flutter/flutter/issues/74970

简而言之,如果您使用 iOS 14.0来构建应用程序,您将遇到上述问题。

为了解决这个问题,我在 xCode 中使用了 安装 iOS 13.7 首选项-> 组件-> iOS 13.7-> 然后在 xCode 中重新构建应用程序。

只要禁用,然后重新启用 Edit菜单的 Automatically Sync Pasteboard选项,修复了我的问题。

Automatically Sync Pasteboard

在尝试了很多,没有工作的 M1 Mac 和模拟器以上14我采取了不同的路线来解决问题。

在模拟器中输入文本的苹果脚本。

tell application "System Events"
set texttosay to "Sample Text"
display dialog "Text to type:" default answer "white: "
set texttosay to the text returned of the result
repeat
delay 2
repeat 1 times
keystroke texttosay
delay 1
keystroke return
end repeat
exit repeat
end repeat
end tell

步骤:

  1. 在苹果脚本中运行上面的脚本,并将文本粘贴到要在模拟器中键入的对话框中。
  2. 单击输入框填充值。

希望这能解决你的问题。

谢谢

在 Apple M2和 Simulator 13.4.1上面临着同样的问题,我深入研究了我的操作系统日志,看起来在 Simulator 中有一些问题——我猜——因为我可以读到它无法检索存储在文件中的纸板的内容。我仍然可以打开自己的文件,并确认纸板的内容是可以的。

在粘贴时请求访问相应的文件(使用“粘贴”菜单或经典的 cmd + V)之后,我可以读取如下内容:

Upload preparation for claim XXXX completed with error:
Error Domain=NSCocoaErrorDomain
Code=256 "Impossible d’ouvrir le fichier « bbbb »."
UserInfo={
NSURL=file:///Users/username/Library/Developer/CoreSimulator/Devices/XXXX/data/Library/Caches/com.apple.Pasteboard/ZZZZZ/,
NSFilePath=/Users/username/Library/Developer/CoreSimulator/Devices/XXXX/data/Library/Caches/com.apple.Pasteboard/ZZZZZ/data/Library/Caches/com.apple.Pasteboard/aaaaa/bbbb,
NSUnderlyingError=0x6000005105d0
{Error Domain=NSOSStatusErrorDomain Code=-10817 "(null)"}}

所以,我想,苹果只是有一些调整仍在进行中的模拟器。 因此,在我的例子中,禁用/启用自动同步或强制同步纸板都不起作用。

如果您正在使用 React Natural,这是一个可能有效的解决方案。

现在我的 M1 Pro Macbook 遇到了这个问题。在我把 Xcode 升级到14.0之前,一切都很正常。

问题似乎是我在罗塞塔运行终端。当通过 npx react-native run-ios启动模拟器时,这也启动了 Rosetta 中的模拟器(我假设这里不能证明它)。

解决方案: 确保 Xcode 在本地运行,并且从 Xcode 而不是 Terminal 运行项目,复制粘贴功能应该会再次工作。

取消勾选并再次勾选“自动 Snyc 粘贴板”。那就退出模拟器,重新打开。这就是我修好它的原因。

enter image description here