If you create a NavigationSplitView, then the sidebar is automatically adorned with a sidebar material effect. This affects the views background as well as any controls that are in the view.
What is the correct way to disable this behaviour so that I can use a NavigationSplitView without the material effects being applied?
The best I've come up with so far is to explicitly set the background on the sidebar but I'm curious if that's the correct way or I'm just getting lucky.
struct ContentView: View {
var body: some View {
NavigationSplitView {
// This works, but is it correct?
SidebarView()
.background(.windowBackground)
} detail: {
DetailView()
}
}
}
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
In SwiftUI for macOS, when implementing a DragGesture inside a ScrollVIew, how can I implement auto-scrolling when the mouse is not actively moving?
In AppKit, this would normally be done with a periodic event so that auto-scrolling continues to take place even if the user isn't actively moving the mouse. This is essential behaviour when implementing something like a drag-to-select gesture.
NSView.autoscroll(with: NSEvent) -> Bool
Is there anything in SwiftUI or ScrollView to accomplish this behaviour?
Is there a way to configure the style and toolbar of the macOS window that Xcode uses in #Preview?
I am working on a macOS application and want to preview some SwiftUI views within different window styles, toolbar styles and window title/subtitle visibilities.
Some of the modifiers to control the look-and-feel of a window are actually Scene Modifiers, not View Modifiers:
.windowStyle
.windowToolbarLabelStyle
.windowToolbarStyle
But #Preview does not accept Scenes, so I can't apply these modifiers:
// Error, not a view modifier.
#Preview {
ContentView()
.windowStyle(...)
}
// Error, Window is not supported in #Preview.
#Preview {
Window("Browser", id: "browser") {
ContentView()
}
}
If I give my ContentView a .toolbar(...), Xcode's Preview will correctly show a window with a toolbar, but not necessarily in the style I want.
Is there a way to apply the Scene Modifiers to #Preview so that I can see how they affect the window's chrome and toolbar?