2012-07-13 2 views
2

NSOpenPanel이 열리는 기본 창이어야하는 내 시스템의 폴더에 URL을 전달할 수있는 방법이 있습니까? 감사합니다.NSOpenPanel을 사용자 지정 디렉토리로 엽니 다.

업데이트 :

NSOpenPanel *ads_open = [[NSOpenPanel openPanel] retain]; 
[ads_open setDirectoryURL:"file://localhost/System/Library/CoreServices/prndrv"]; 

나는 기본적으로 개방하고자하는 디렉토리입니다 위의 코드를 사용하고 있습니다. 그러나, 내가 얻는 기본 창은 여전히 ​​내가 액세스 한 마지막 창이 아니라 내가 지정한 것입니다. 어떻게 URL 디렉토리에 액세스 할 수 있습니까?

+0

어떻게 할 수이도 작업. 'setDirectoryURL :'는 Char *가 아닌 NSURL을 취합니다 ... ... –

+0

NSURL로 간주되는 경로는 무엇을 추가해야합니까? – Kevin

+0

[NSURL URLWithString : @ "파일 :/// 여기에/경로"] : [NSURL URLWithString –

답변

0

근무 예 : 스위프트 3의

NSOpenPanel *panel = [NSOpenPanel openPanel]; 

// changes promt to Select 
[panel setPrompt:@"Select"]; 

// Enable the selection of files in the dialog. 
[panel setCanChooseFiles:NO]; 

// Enable the selection of directories in the dialog. 
[panel setCanChooseDirectories:YES]; 

//allows multi select 
[panel setAllowsMultipleSelection:NO]; 
if(exists){ 
    [panel setDirectoryURL:[NSURL fileURLWithPath:lastPath]]; 
} 

[panel beginSheetModalForWindow:self.window 
       completionHandler:^(NSInteger returnCode) { 
        if (returnCode == NSOKButton) 
        { 
         ..... 

       }}]; 
+0

이 \t [ads_open setDirectoryURL ... 트릭을 수행해야하는 라인이지만, 어떤 이유로하지 않습니다 : @ "file : // localhost/System/Library/CoreServices/HOBmacgate/prndrv"]]; 파일 브라우저가 액세스 된 마지막 URL을로드하고 있으며 URL로 지정된 기본 URL은로드하지 않습니다. – Kevin

+0

'/ localhost/System/Library/CoreServices/HOBmacgate/prndrv'가 실제로 존재합니까? 기타'NSOpenPanel'은 디렉토리를 표시 할 수 없습니다. – Anne

1
NSOpenPanel *ads_open = [NSOpenPanel openPanel]; 
[ads_open setDirectoryURL:[NSURL URLWithString:@"file://localhost/System/Library/CoreServices/prndrv"]]; 
1

다른 사람의 유효한 파일 URL을 [NSURL fileURLWithPath:someStringPath]를 사용하여 조심

let panel = NSOpenPanel() 
panel.directoryURL = URL(fileURLWithPath: "smb://servername/path", isDirectory: true) 
0

:

NSOpenPanel *panel = [NSOpenPanel openPanel]; 
[panel setDirectoryURL:[NSURL URLWithString:@"file://localhost/System/Library/CoreServices/"]]; 

[panel beginSheetModalForWindow:self.window 
       completionHandler:^(NSInteger returnCode) { 
        if (returnCode == NSOKButton) 
        { 
         NSURL *theURL = [[panel URLs] objectAtIndex:0]; 
        } 
       }];