我正在寻找一个如何将文本复制到iOS剪贴板,然后可以在其他应用程序中使用/粘贴的干净的例子。

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

我假设关键类在UIPasteboard中,但在它们提供的代码示例中找不到相关区域。


当前回答

由于复制和粘贴通常是成对进行的,这是对@ jtbands的补充回答,很好,简洁的回答。我最初来这里是想看看如何粘贴。

iOS很容易做到这一点,因为一般的粘贴板可以像变量一样使用。获取并设置uipasteboard。general。string。

下面是一个例子,显示两者都用于UITextField:

Copy

UIPasteboard.general.string = myTextField.text

粘贴

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

请注意,纸板字符串是可选的,所以必须首先展开它。

其他回答

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

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

extension UIPasteboard {
  static func pasteToClipboard(_ content: String) {
    self.general.string = content
  }

  static func readFromClipboard() -> String? {
    return self.general.string
  }
}

由于复制和粘贴通常是成对进行的,这是对@ jtbands的补充回答,很好,简洁的回答。我最初来这里是想看看如何粘贴。

iOS很容易做到这一点,因为一般的粘贴板可以像变量一样使用。获取并设置uipasteboard。general。string。

下面是一个例子,显示两者都用于UITextField:

Copy

UIPasteboard.general.string = myTextField.text

粘贴

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

请注意,纸板字符串是可选的,所以必须首先展开它。

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

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

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

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

斯威夫特4

UIPasteboard.general.string = "TEXT"