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

Gar*_*Law 162 cocoa-touch copy uipasteboard ios swift

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

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

我假设关键类在UIPasteboard,但无法在他们提供代码示例中找到相关区域.

jtb*_*des 390

如果你想要的只是纯文本,你可以使用该string属性:

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

// read from clipboard
let content = UIPasteboard.general.string
Run Code Online (Sandbox Code Playgroud)

在Swift 3中:

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

// read from clipboard
let content = UIPasteboard.general.string
Run Code Online (Sandbox Code Playgroud)


Sur*_*gch 49

由于复制和粘贴通常是成对完成的,这是@jtbandes良好,简洁的答案的补充答案.我最初来这里看是怎么粘贴的.

iOS使这一点变得简单,因为普通的粘贴板可以像变量一样使用.只是得到并设置UIPasteboard.general.string.

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

复制

UIPasteboard.general.string = myTextField.text
Run Code Online (Sandbox Code Playgroud)

if let myString = UIPasteboard.general.string {
    myTextField.insertText(myString)
}
Run Code Online (Sandbox Code Playgroud)

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

  • 根据 [Apple 文档](https://developer.apple.com/documentation/uikit/uipasteboard/1622092-string):“不要使用 `UIPasteboard.general.string` 来确定粘贴板是否包含字符串数据。相反,使用`hasStrings`属性。” (2认同)

Álv*_*ero 8

快速 4

UIPasteboard.general.string = "TEXT"
Run Code Online (Sandbox Code Playgroud)


Dha*_*iya 7

在要复制字符串或文本的代码下方写下

UIPasteboard.general.string = "Dhaval Gevariya" // Put your String here
Run Code Online (Sandbox Code Playgroud)

这是用于从剪贴板读取字符串。

var readString = UIPasteboard.general.string
Run Code Online (Sandbox Code Playgroud)


Raj*_*shi 6

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

let pasteboard = UIPasteboard.general
pasteboard.string = employee.phoneNumber
Run Code Online (Sandbox Code Playgroud)