Post not yet marked as solved
Hi,
using the following ContentView in a SwiftUI app on macOS I would expect that the state of the toggle persists across application launches:
struct ContentView: View {
@SceneStorage("Toggle") var onOrOff: Bool = false
var body: some View {
VStack {
Toggle("Will it persist?", isOn: $onOrOff)
.padding()
}
}
}
To my surprise it does not persist. Am I wrong about how @SceneStorage should work? (I am trying this on the lates macOS/Xcode versions)
Does @SceneStorage work for anybody on macOS?
Thanks for your feedback!
Cheers, Michael
Post not yet marked as solved
I am trying to use import from iPhone option as shown in WWDC session.
I added code
WindowGroup {
ContentView()
.environment(\.managedObjectContext, persistenceController.container.viewContext)
}
.commands {
ImportFromDevicesCommands()
}
ContentView.swift is
List {
ForEach(items) { item in
NavigationLink {
Text("Item at \(item.timestamp!, formatter: itemFormatter)")
} label: {
Text(item.timestamp!, formatter: itemFormatter)
}
}
.onDelete(perform: deleteItems)
}
.importsItemProviders([.image,.png,.jpeg,.rawImage], onImport: { providers in
print("checking reachability")
return true
})
The importsItemProviders block itself is not executed and not printing anything.
In addition I am getting alert The operation couldn’t be completed. (Cocoa error 66563.)
Is there anything to add for making this functionality work ?
Post not yet marked as solved
How does one declare a TableColumn with a nullable field?
I have a Book model with several nullable fields:
struct Book: Codable, Equatable, Identifiable {
// ...
let productURL: String?
// ...
}
This is how I'm trying define the corresponding TableColumn:
TableColumn("Product URL", value: \.productURL) { book in
Text(String(book.productURL ?? ""))
}
Though this results in several errors:
Referencing initializer 'init(_:value:comparator:content:)' on 'TableColumn' requires that 'Book' inherit from 'NSObject'
Referencing initializer 'init(_:value:comparator:content:)' on 'TableColumn' requires that 'Book' inherit from 'NSObject'
Referencing initializer 'init(_:value:comparator:content:)' on 'TableColumn' requires the types 'KeyPathComparator' and 'SortDescriptor' be equivalent
Referencing initializer 'init(_:value:comparator:content:)' on 'TableColumn' requires the types 'KeyPathComparator' and 'SortDescriptor' be equivalent
Other, non-nullable columns work just fine. For example:
TableColumn("ID", value: \.id) { book in
Text(String(book.id))
}
TableColumn("Slug", value: \.slug)
TableColumn("Category", value: \.category)
TableColumn("Title", value: \.title)
// ...