8

NSOpenPanelが開くデフォルトウィンドウであるシステム上のフォルダにURLを渡す方法はありますか?ありがとう!

アップデート:

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

デフォルトで開きたいディレクトリである上記のコードを使用しています。ただし、取得しているデフォルトのウィンドウは、最後にアクセスしたウィンドウであり、指定したウィンドウではありません。URLディレクトリにアクセスするにはどうすればよいですか?

4

4 に答える 4

2

[NSURL fileURLWithPath:someStringPath]それ以外の場合は、有効なファイル URL ではないので注意してください:

   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)
                  {
                      .....

              }}];
于 2013-06-16T14:00:38.240 に答える
2

スウィフト 3 の場合:

let panel = NSOpenPanel()
panel.directoryURL = URL(fileURLWithPath: "smb://servername/path", isDirectory: true)
于 2016-11-02T19:17:22.920 に答える
2
NSOpenPanel *ads_open = [NSOpenPanel openPanel];
[ads_open setDirectoryURL:[NSURL URLWithString:@"file://localhost/System/Library/CoreServices/prndrv"]];
于 2012-07-13T11:24:02.933 に答える
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];
                  }
              }];
于 2012-07-13T11:23:24.417 に答える