SelectDirectory for OS X
I was creating an app for FireMonkey and needed to be able to select a directory, currently there is no method (that I could see) to do this. Here is what I used:
function SelectDirectory(const ATitle: string; var ADir: string): Boolean; var LOpenDir: NSOpenPanel; LInitialDir: NSURL; LDlgResult: NSInteger; begin Result := False; LOpenDir := TNSOpenPanel.Wrap(TNSOpenPanel.OCClass.openPanel); LOpenDir.setAllowsMultipleSelection(False); LOpenDir.setCanChooseFiles(False); LOpenDir.setCanChooseDirectories(True); if ADir <> '' then begin LInitialDir := TNSURL.Create; LInitialDir.initFileURLWithPath(NSSTR(ADir)); LOpenDir.setDirectoryURL(LInitialDir); end; if ATitle <> '' then LOpenDir.setTitle(NSSTR(ATitle)); LOpenDir.retain; try LDlgResult := LOpenDir.runModal; if LDlgResult = NSOKButton then begin ADir := string(TNSUrl.Wrap(LOpenDir.URLs.objectAtIndex(0)).relativePath.UTF8String); Result := True; end; finally LOpenDir.release; end; end;