我想使用 onReceive 订阅 SwiftUI 中的 UIPasteboard 更改。
pHasStringsPublisher一旦剪贴板中的内容发生变化,它就不会更新,我不明白为什么。
import SwiftUI
struct ContentView: View {
let pasteboard = UIPasteboard.general
@State var pString: String = "pString"
@State var pHasStrings: Bool = false
@State var pHasStringsPublisher: Bool = false
var body: some View {
VStack{
Spacer()
Text("b: '\(self.pString)'")
.font(.headline)
Text("b: '\(self.pHasStrings.description)'")
.font(.headline)
Text("p: '\(self.pHasStringsPublisher.description)'")
.font(.headline)
Spacer()
Button(action: {
self.pString = self.pasteboard.string ?? "nil"
self.pHasStrings = self.pasteboard.hasStrings
}, label: {
Text("read pb")
.font(.largeTitle)
})
Button(action: {
self.pasteboard.items = []
}, label: {
Text("clear …Run Code Online (Sandbox Code Playgroud)