小编3xy*_*n0s的帖子

SwiftUI onReceive 不适用于 UIPasteboard 发布者

我想使用 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)

uipasteboard swift swiftui combine

1
推荐指数
1
解决办法
982
查看次数

标签 统计

combine ×1

swift ×1

swiftui ×1

uipasteboard ×1