runModalForTypes работает, но setAllowedFileTypes + runModal нет? - PullRequest
0 голосов
/ 21 декабря 2011

Когда я использую

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 устарел, и мы должны использовать второй способ.Я что-то не так делаю?

1 Ответ

1 голос
/ 22 декабря 2011

Вы строите для Mac OS X 10.6 и более поздних версий?Согласно заголовочному файлу: "В версиях менее 10.6 это свойство игнорируется."

В противном случае ваш код выглядит правильно (если вы в какой-то момент выпускаете fileTypes) и работаетдля меня (проверено на Mac OS X 10.7.2).

Одним из незначительных предложений является использование универсального идентификатора типа для идентификации PDF-файлов вместо жестких кодов расширений файлов, например:

NSArray *fileTypes = [NSArray arrayWithObjects:(id)kUTTypePDF, nil];
...