Here’s a project that will let you access Apple’s NSSavePanel and NSOpenPanel through two classes that are completely declare driven.
I’ve matched the property names to what Xojo uses where I could, everything else uses the Apple names.
Note: In these classes, Filter takes an array of FileType objects, not strings, because I used the Uniform Type Identifiers to look up the underlying classes.