NSOpenPanel as sheet

You need to call beginSheetModalForWindow from your panel on your window, and use a completion block:

let myFiledialog = NSOpenPanel()
myFiledialog.prompt = "Select path"
myFiledialog.worksWhenModal = true
myFiledialog.allowsMultipleSelection = false
myFiledialog.canChooseDirectories = true
myFiledialog.canChooseFiles = false
myFiledialog.resolvesAliases = true
myFiledialog.beginSheetModalForWindow(window, completionHandler: { num in
    if num == NSModalResponseOK {
        let path = myFiledialog.URL
        print(path)
    } else {
        print("nothing chosen")
    }
})

Swift 5

let dialog = NSOpenPanel()
dialog.beginSheetModal(for: self.view.window!){ result in
    if result == .OK, let url = dialog.url {
        print("Got", url)
    }
}