我在 SwiftUI 中开发了一个 macOS 个人理财应用程序,它通过NSViewControllerRepresentable
SwiftUI 和 AppKit 之间的接口使用 NSTableViews 和 NSOutlineViews。
我发现 AppKit 视图功能远远优于我可以使用 SwiftUI 列表创建的任何东西,而且它们运行得更快并且支持 TypeSelect。将数据传递到 Appkit ViewControllers 很简单,但获取信息似乎不那么简单。
Apple 开发人员文档建议我应该使用一个Coordinator
类,我曾尝试这样做但无济于事。我需要的委托方法 ( func tableViewSelectionDidChange(_ notification: Notification)
) 无法运行(从我的Coordinator
班级内部)。
目前我正在交换数据和操作NotificationCenter.default
,并且效果很好,但我热衷于使用“官方”方法。我找到了一个成功使用 Coordinator 的 macOS 应用程序(在https://www.markusbodner.com/til/2021/02/08/multi-line-text-field-with-swiftui-on-macos/)但我不能让我的Coordinator
班级正常工作,NSTableViewDelegate
即使它构建和运行时没有错误(Xcode 12.4)。
我首先要做的就是获取一个NSViewController
包含 a 的 aNSTableView
以通过 a 将其传递NSTableView.selectedRow
到其父 SwiftUI 视图中Coordinator
,每当用户在 NSTableView 中选择一个新行时。任何人都可以帮忙(如果可能的话,请提供一些示例代码)?