我已经提到了这个链接
现在我正在使用NSOpenPanel打开iPhoto图库文件夹。
以下是允许打开的代码。
int i = 0;
NSOpenPanel* openDlg = [NSOpenPanel openPanel];
[openDlg setCanChooseFiles:YES];
[openDlg setAllowedFileTypes:[NSArray arrayWithObjects:@"public.image",@"public.video",nil]];
[openDlg setAllowsMultipleSelection:TRUE];
[openDlg setAllowsOtherFileTypes:NO];
if ( [openDlg runModal] == NSOKButton )
{
NSArray *files = [openDlg URLs];
for( i = 0; i < [files count]; i++ )
{
NSLog(@"File path: %@", [[files objectAtIndex:i] path]);
}
}
此代码始终打开我的Finder库文件夹,因为我想直接打开Media Photo and Movies文件夹。
请给我任何解决方案。
我附上了一个屏幕截图。
谢谢&amp;的问候,
答案 0 :(得分:2)
您可以考虑添加以下代码段:
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error = nil;
NSURL *picturesURL = [fileManager URLForDirectory:NSPicturesDirectory inDomain:NSUserDomainMask appropriateForURL:NULL create:NO error:&error];
NSURL *iPhotoURL = [picturesURL URLByAppendingPathComponent:@"iPhoto Library.photolibrary"];
[openDlg setDirectoryURL:iPhotoURL];
// Now run the dialog
如果用户将他的iPhoto图库移动到某个非标准位置,这将无济于事。
答案 1 :(得分:0)
Apple的私有API包含您想要访问的控件; 此控件是 ILMediaBrowserView ,并提供与NSOpenDialog 中相同的相同视图。如果您正在计划应用程序的AppStore版本,请不要使用它,但它可能很有用。集成到您的项目以获取该视图的框架是 / System / Library / PrivateFrameworks 中的 iLifeMediaBrowser.framework 。