小编and*_*off的帖子

将数据从简单的 NSView 传递到 SwiftUI View

我正在使用 SwiftUI 制作 macOS 应用程序。我有一个符合 的结构NSViewRepresentable,其目的是检测按下的哪个键的键代码。我想将其传递event.keyCode回 SwiftUI 并将其保存到环境对象中,以便我可以在应用程序的其他位置使用关键代码。
我知道我应该使用 SwiftUI 协调器,但我能找到的所有教程和 Stack Overflow 问题都使用现成的类,例如UIPageControlUISearchBar具有预配置委托的类。我不确定使用简单的自定义时该怎么做NSView。有人可以解释如何在使用自定义时将数据从NSViewRepresentable结构传递到 my 中吗?@EnvironmentObjectNSView

struct KeyboardEvent: NSViewRepresentable {

    class KeyView: NSView {
        override var acceptsFirstResponder: Bool { true }
        override func keyDown(with event: NSEvent) {
            print("\(event.keyCode)")
        }
    }

    func makeNSView(context: Context) -> NSView {
        let view = KeyView()
        DispatchQueue.main.async {
            view.window?.makeFirstResponder(view)
        }
        return view
    }

    func updateNSView(_ nsView: NSView, context: Context) {
    }

} …
Run Code Online (Sandbox Code Playgroud)

macos uikit swift swiftui

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

标签 统计

macos ×1

swift ×1

swiftui ×1

uikit ×1