在SwiftUI中,我们可以使用onPasteCommand
修饰符来捕捉在TextField上粘贴的文本。以下是一个包含代码示例的解决方法:
import SwiftUI
struct ContentView: View {
@State private var text: String = ""
var body: some View {
VStack {
TextField("Paste text here", text: $text)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding()
.onPasteCommand(perform: { pasteboardItems in
for item in pasteboardItems {
if let string = item.string(forType: .string) {
self.text = string
}
}
})
Text("Pasted text: \(text)")
.padding()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
在这个示例中,我们创建了一个TextField来接收粘贴的文本。我们使用onPasteCommand
修饰符来添加一个处理程序,该处理程序在发生粘贴操作时被调用。在处理程序中,我们遍历粘贴板项目,并检查每个项目的类型。如果类型是字符串类型,我们将该字符串赋值给text
状态变量。
最后,我们在界面中添加了一个Text视图,用于显示已粘贴的文本。