我该如何使用Swift进行程序化粘贴?

10

我希望有一个按钮,用户可以按下该按钮,将剪贴板中的任何文本自动粘贴到UITextView中。

我该如何在Swift中实现呢?

有人已经在此处回答了此问题,但是使用的是Objective-C。

4个回答

20

你应该只需要将它们转换为Swift:

@IBAction func copy() {
    let pb: UIPasteboard = UIPasteboard.generalPasteboard();
    pb.string = textView.text // Or another source of text
}

@IBAction func paste() {
    let pb: UIPasteboard = UIPasteboard.generalPasteboard();
    textView.text /*(Or somewhere to put the text)*/ = pb.string
}

4
Swift 5 let pb: UIPasteboard = UIPasteboard.general 可以翻译为:let pb: UIPasteboard = UIPasteboard.general - spacecash21

4
您可以在Swift中实现复制和粘贴方法,如下所示:

您可以在Swift中实现复制和粘贴方法,如下所示:

// Function receives the text as argument for copying
func copyText(textToCopy : NSString)
{
    let pasteBoard    = UIPasteboard.generalPasteboard();
    pasteBoard.string = textToCopy; // Set your text here
}

// Function returns the copied string
func pasteText() -> NSString
{
    let pasteBoard    = UIPasteboard.generalPasteboard();
    println("Copied Text : \(pasteBoard.string)"); // It prints the copied text
    return pasteBoard.string!;
}

1

对于Swift 5.0及以上版本

func copyText(from text: String) {
    weak var pb: UIPasteboard? = .general
    pb?.string = text
}

func pasteText() -> String? {
    weak var pb: UIPasteboard? = .general
    
    guard let text = pb?.string else { return nil}
    
    return text
}

-1

最简单的方法 - Swift 5+

添加任何标准的Swift类型的简单方法是使用setter:

UIPasteboard.general.string = "Pasted String"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接