如何使用 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 将文本复制到剪贴板/粘贴板的主要内容,如果未能解决你的问题,请参考以下文章