Missing SwiftUI Preview Window in Xcode

This is no doubt obvious if you’ve dutifully watched all the WWDC sessions on SwiftUI, but if you’re like me and just diving in and hacking the hell out of it, you might be baffled that the much-renowned preview pane isn’t showing up when you create your SwiftUI View.

There are two things you need:

  1. The Canvas view enabled in the upper right (also available via Cmd+Option+Enter)
    Enabling the canvas view in the upper right of Xcode 12
  2. A PreviewProvider declared that uses your new View. This is what the preview pane picks up automatically for rendering—just having the view, even if it has default-assigned data to display, isn’t enough. Here’s what that might look like:
import SwiftUI

struct LibraryView: View {
    let paths: [LibraryDirectory] = [LibraryDirectory(fromPath: "~/Dropbox"), LibraryDirectory(fromPath: "~/Documents")]

    var body: some View {
        List(paths) { paths in
            Text(path.toString())
        }
        .frame(minWidth: 300, minHeight: 300)
    }
}

// The important bit!
struct LibraryViewPreview: PreviewProvider {
	static var previews: some View {
		LibraryPicker()
	}
}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s