2012-02-09 14 views
5

Ecco come visualizzo un pannello aperto come finestra mobile.Foglio NSOpenPanel

Qualcuno può darmi una mano eseguendo il pannello come un foglio? L'oggetto finestra è mWindow. Gran parte del codice standard che stavo usando è ammortizzato.

NSOpenPanel *openPanel = [NSOpenPanel openPanel]; 
NSArray* fileTypes = [[NSArray alloc] initWithObjects:@"mp3", @"mp2", @"m4a", nil]; 

[openPanel setAllowsMultipleSelection: NO]; 
[openPanel setCanChooseDirectories:NO]; 
[openPanel setCanCreateDirectories:NO]; 
[openPanel setCanChooseFiles:YES]; 
[openPanel setAllowedFileTypes:fileTypes]; 

NSString * filePath = @"~/Desktop"; 
filePath = [filePath stringByExpandingTildeInPath]; 
NSURL *fileURL = [NSURL fileURLWithPath:filePath]; 
[openPanel setDirectoryURL:fileURL]; 

NSInteger clicked = [openPanel runModal]; 
if (clicked == NSFileHandlingPanelOKButton) { 
    for (NSURL *url in [openPanel URLs]) { 
     NSString *urlString = [url path]; 
     [input setStringValue:urlString]; 
     NSString *myString = [input stringValue]; 
     NSString *oldPath = [myString lastPathComponent]; 
     [inputDisplay setStringValue:oldPath]; 
    } 
} 

risposta

12

Abbastanza semplice, è proprio lì nella documentazione se potrebbe essere perso perché il metodo in questione è in realtà parte di NSSavePanel, da cui eredita NSOpenPanel.

Presumendo che stai targeting Snow Leopard o superiore, e quindi ha accesso a blocchi, è solo una questione di sostituire la chiamata runModal con questo:

[openPanel beginSheetModalForWindow:mWindow completionHandler:^(NSInteger result) { 

    if (result == NSFileHandlingPanelOKButton) { 

     // Do something. 
    } 
}]; 
+0

grazie - ancora non può farlo. Sto ottenendo errori di analisi. – user1198008

+0

Si prega di spiegare quali errori si stanno ottenendo. –

+0

Siamo spiacenti. Stavo semplicemente omettendo un altro} * dopo *]; Funzionando bene ora. grazie per l'aiuto. – user1198008

Problemi correlati