В macOS 11.0 allowedFileTypes < / a> помечено как устаревшее в пользу свойства allowedContentType < / a> свойство.

Мы разрабатываем подключаемый модуль для стороннего приложения для macOS. Подключаемый модуль просит пользователя предоставить файл лицензии - мы предоставляем файл с нашим проприетарным расширением abcLicence. Поскольку мы не можем обрабатывать двойные щелчки как подключаемый модуль, мы полагаемся на NSOpenPanel, запускаемый из пользовательского интерфейса подключаемого модуля. Поскольку регистрация типа файла практически не приносила пользы, поскольку мы не можем реагировать на действия файла оболочки, мы не включаем ее в файл подключаемых модулей plist. Плагин поддерживает macOS 10.12+.

NSOpenPanel *openDialog = [NSOpenPanel openPanel];
openDialog.title = @"Locate ABC license file";
openDialog.allowedFileTypes = @[@"abcLicence"];

Как обновить код, чтобы использовать новый API, если он доступен, сохранив при этом поддержку macOS 10.12+?

0
alik 23 Янв 2021 в 21:24

1 ответ

Лучший ответ

Используйте метод делегирования panel:shouldEnableURL:, доступно с 10.6. С помощью этого метода вы можете реализовать произвольную логику, чтобы решить, должен ли элемент быть включен и, следовательно, доступен для выбора, в вашем случае вы можете просто проверить расширение. HTH

1
CRD 23 Янв 2021 в 19:39