Implementare un file picker in Swift

Mattepuffo's logo
Implementare un file picker in Swift

Implementare un file picker in Swift

Siamo in ambito Swift su macOS.

Quello che vogliamo fare è implementare un file picker, in modo da permettere all'utente di scegliere uno o più files.

Il tutto avviene attraverso l'oggetto NSOpenPanel.

Vediamo un esempio di apertura da un bottone:

import SwiftUI

struct ContentView: View {
    var body: some View {
        Button(action: {
            choose();
        }) {
            Text("Premi");
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

func choose() {
    let dialog = NSOpenPanel();
    dialog.title  = "Scegli...";
    dialog.showsResizeIndicator = false;
    dialog.showsHiddenFiles = true;
    dialog.allowsMultipleSelection = true;
    dialog.canChooseDirectories = false;
    dialog.allowedFileTypes = ["mp3"];
    
    if(dialog.runModal() == NSApplication.ModalResponse.OK) {
        let result = dialog.urls;
        
        for r in result {
            print(r.path);
        }
    }
}

Nel nostro esempio accettiamo che l'utente possa scegliere più filese.

Inoltre abbiamo impostato un filtro per i file tra cui può scegliere; i file con altre estensioni non verranno visualizzati.

Enjoy!


Share this Post

Commentami!