SwiftUI - 如何将文本复制到剪贴板?

SwiftUI - how to copy text to clipboard?

如何将文本字段的内容复制到 iOS 剪贴板?

我有以下代码 & 想用将文本字段的内容复制到 iOS 剪贴板的语句替换 "print(..)" 语句。

Text(self.BLEinfo.sendRcvLog)
    .onTapGesture(count: 2) {
        print("Copy text field content to ClipBoard Here..")
    }

似乎找不到如何执行此操作的任何 SwiftUI 示例。

谢谢!

使用以下方法 - 将显示的文本放入特定类型的粘贴板(您可以根据需要设置任意数量的值和类型)

更新: 用于 Xcode 13+,因为“'kUTTypePlainText' 在 iOS 15.0 中被弃用...”警告

import UniformTypeIdentifiers

Text(self.BLEinfo.sendRcvLog)
    .onTapGesture(count: 2) {
        UIPasteboard.general.setValue(self.BLEinfo.sendRcvLog,
            forPasteboardType: UTType.plainText.identifier)
    }

旧版本:

import MobileCoreServices // << for UTI types

// ... other code

Text(self.BLEinfo.sendRcvLog)
    .onTapGesture(count: 2) {
        UIPasteboard.general.setValue(self.BLEinfo.sendRcvLog, 
            forPasteboardType: kUTTypePlainText as String)
    }

backup

Text(self.BLEinfo.sendRcvLog)
    .onTapGesture(count: 2) {    
        UIPasteboard.general.string = self.BLEinfo.sendRcvLog
    }

或者非常喜欢:

Text(self.BLEinfo.sendRcvLog)
    .contextMenu {
        Button(action: {
            UIPasteboard.general.string = self.BLEinfo.sendRcvLog
        }) {
            Text("Copy to clipboard")
            Image(systemName: "doc.on.doc")
        }
     }

对于iOS 14+

UIPasteboard.general.setValue(message, forPasteboardType: "public.plain-text")