0

我已经参考了这个链接

艾媒

现在我正在使用 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 库文件夹,因为我想直接打开媒体照片和电影文件夹。

请给我任何解决方案。

我在这里附上了一个屏幕截图。

在此处输入图像描述

感谢和问候,

4

2 回答 2

3

您可以考虑添加以下代码片段:

    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 图库移动到某个非标准位置,这将无济于事。

于 2013-04-04T15:38:10.773 回答
0

Apple 有一个私有 API,其中包含您想要访问的控件;此控件是一个ILMediaBrowserView并提供与 NSOpenDialog 中的完全相同的视图。如果您计划发布您的应用程序的 AppStore 版本,请不要使用它,但它可能很有用。集成到您的项目以获取该视图的框架是/System/Library/ PrivateFrameworks中的 iLifeMediaBrowser.framework 。

于 2013-04-29T12:58:26.390 回答