当我使用
时NSArray* fileTypes = [[NSArray alloc] initWithObjects:@"pdf", @"PDF", nil];
NSInteger result = [openPanel runModalForTypes:fileTypes];
它按预期工作(只能选择pdf文件),但是当我使用
时NSArray* fileTypes = [[NSArray alloc] initWithObjects:@"pdf", @"PDF", nil];
[openPanel setAllowedFileTypes:fileTypes];
NSInteger result = [openPanel runModal];
我可以选择所有类型的文件,而不仅仅是pdfs。文档说不推荐使用runModalForTypes,我们应该使用第二种方式。我做错了吗?
答案 0 :(得分:1)
您是否正在为Mac OS X 10.6及更高版本构建?根据头文件:“在小于10.6的版本上,此属性将被忽略。”
否则,您的代码看起来是正确的(假设您在某个时候发布fileTypes
)并且适合我(在Mac OS X 10.7.2上测试)。
一个小建议是使用统一类型标识符来识别PDF而不是硬编码文件扩展名,如下所示:
NSArray *fileTypes = [NSArray arrayWithObjects:(id)kUTTypePDF, nil];