如何使用 Swift 将文本复制到剪贴板/粘贴板

Posted

技术标签:

【中文标题】如何使用 Swift 将文本复制到剪贴板/粘贴板【英文标题】:How to copy text to clipboard/pasteboard with Swift 【发布时间】:2014-08-31 11:01:27 【问题描述】:

我正在寻找一个简洁的示例,说明如何将文本复制到 ios 剪贴板,然后可以在其他应用中使用/粘贴。

此功能的好处是可以快速复制文本,无需传统文本复制的标准文本突出显示功能。

我假设关键类在UIPasteboard,但在code example they supply 中找不到相关区域。

【问题讨论】:

目标-C:hayageek.com/uipasteboard-example-read-write-share 【参考方案1】:

如果你想要的只是纯文本,你可以使用string property。它既可读又可写:

// write to clipboard
UIPasteboard.general.string = "Hello world"

// read from clipboard
let content = UIPasteboard.general.string

(当从剪贴板读取时,the UIPasteboard documentation 还建议您可能要先检查hasStrings,“以避免导致系统在需要数据之前或何时不必要地尝试获取数据数据可能不存在”,例如在使用 Handoff 时。)

【讨论】:

这可能工作正常,但不会发生用户在其复制内容中包含图像或文件的情况吗? UIPasteboard.general.string 也适用于 swift 4.x 如何复制带有字体样式的字体? 这太棒了【参考方案2】:

由于复制和粘贴通常是成对完成的,这是对@jtbandes 的补充回答,很好,简洁的回答。我最初是来这里寻找如何粘贴的。

iOS 使这很容易,因为通用粘贴板可以像变量一样使用。只需获取并设置UIPasteboard.general.string

这是一个示例,显示两者都与 UITextField 一起使用:

复制

UIPasteboard.general.string = myTextField.text

粘贴

if let myString = UIPasteboard.general.string 
    myTextField.insertText(myString)

请注意,粘贴板字符串是可选的,因此必须先将其解包。

【讨论】:

如何复制带有字体样式的文本。所以我可以使用那个字体样式 @KrunalNagvadia,您不能使用该字体样式复制文本,但您可以使用myTextField.font 获取字体信息。您可以单独保存该信息并将其应用到其他地方。 好的,如果我从我的应用程序中复制文本并粘贴到 WhatsApp 或任何其他应用程序中,它是否支持样式? @KrunalNagvadia,不,iOS 系统UIPasteboard 不支持样式。您只能在自己的应用中处理样式。 根据Apple Docs:“不要使用UIPasteboard.general.string来确定粘贴板是否包含字符串数据。而是使用hasStrings属性。”【参考方案3】:

将文本从应用复制到剪贴板:

let pasteboard = UIPasteboard.general
pasteboard.string = employee.phoneNumber

【讨论】:

【参考方案4】:

SWIFT 4

UIPasteboard.general.string = "TEXT"

【讨论】:

【参考方案5】:

在 Swift 5 中,我可以使用

将文本复制到剪贴板
UIPasteboard.general.string = "Hello world"

然后您可以将文本粘贴到设备的任何位置

【讨论】:

以上是关于如何使用 Swift 将文本复制到剪贴板/粘贴板的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串从swift传递到javascript

VB如何利用剪贴板复制、粘贴文件,用到啥API

用VB实现复制粘贴

粘贴前更新剪贴板数据(不是“粘贴”事件)

IOS剪贴板(复制粘贴)不能跨应用程序

如何控制复制到剪贴板的文本