[英]NSOpenPanel's setDirectoryURL doesn't work
我正在嘗試使用NSOpenPanel的新方法並設置其初始目錄。 問題是它只在第一次工作,然后它只是“記住”最后選擇的文件夾,我不想要。 我必須使用折舊的runModalForDirectory:file:使它工作。 它不太理想,因為它被棄用了10.6,但幸運的是它仍適用於Lion。
我的代碼是:
NSOpenPanel *panel = [NSOpenPanel openPanel];
[panel setAllowedFileTypes:[NSArray arrayWithObjects: @"jpg",@"JPG",@"png", nil]];
panel.canChooseDirectories = YES;
panel.allowsMultipleSelection = YES;
handler = ^(NSInteger result) {stuff};
[panel setDirectoryURL:[NSURL URLWithString:@"/Library/Desktop Pictures"]];
有幾件事需要研究:
~/Pictures
不是有效的網址。 file:///Users/user/Pictures
是。 -[NSURL URLWithString:]
需要有效的URL。 您可能想要使用-[NSURL fileURLWithPath:]
代替。 它將/Users/user/Pictures
轉換為file:///Users/user/Pictures
。 [@"~/Pictures stringByExpandingTildeInPath]
來獲取實際的文件路徑。 放在一起,將最后一行更改為:
[panel setDirectoryURL:[NSURL fileURLWithPath:[@"~/Pictures" stringByExpandingTildeInPath]]];
我認為這應該有效。
Lion中的面板需要一個URL:file:// localhost / Library / Desktop Pictures,但您的URL以實際路徑開頭。 請改用[NSURL fileURLWithPath:@"/Library/Desktop Pictures"]
。
快樂的編碼!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.