Issue #626
SwiftUI does not trigger onAppear and onDisappear like  we expect. We can use NSView to trigger
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 
 | import SwiftUI
 struct AppearAware: NSViewRepresentable {
 var onAppear: () -> Void
 
 func makeNSView(context: NSViewRepresentableContext<AppearAware>) -> AwareView {
 let view = AwareView()
 view.onAppear = onAppear
 return view
 }
 
 func updateNSView(_ nsView: AwareView, context: NSViewRepresentableContext<AppearAware>) {
 
 }
 }
 
 final class AwareView: NSView {
 private var trigged: Bool = false
 var onAppear: () -> Void = {}
 
 override func viewDidMoveToSuperview() {
 super.viewDidMoveToSuperview()
 
 guard !trigged else { return }
 trigged = true
 onAppear()
 }
 }
 
 | 
Then we can use it as an hidden view, like in a ZStack
| 12
 3
 4
 5
 6
 7
 8
 
 | ZStack {AppearAware(onAppear: {
 LocalImageCache.shared.load(url: url) { image in
 self.image = image
 }
 })
 Image(image)
 }
 
 |