- получено от чтения документов более тщательно, чем я, и некоторых побочных мыслей. Приведенный ниже код, основанный на ответе frenchkiss-dev, находится в методе ViewDidAppear и отключает мою кнопку, если при открытии, а затем закрытии меню открытия файла (без анимации) обнаруживается, что нет приложений, которые могут обрабатывать открытие файла. Контекст для этого фрагмента заключается в том, что UIDocumentInteractionController уже настроен в viewDidLoad и доступен через [self docInteractionController].

ументации Apple для UIDocumentInteractionController presentOpenInMenuFromBarButtonItem: animated: метод говорится, что «если нет зарегистрированных приложений, поддерживающих открытие документа, контроллер взаимодействия документов не отображает меню». В моем приложении я хочу отобразить кнопкуесли и только если на устройстве есть приложение, которое откроет его. (Я только хочу, чтобы кнопка открывала меню, чтобы открыть файл; я не хочу QuickLook, Copy или Print). При существующей ситуации, если кнопка есть, но не зарегистрированы приложения, которые могут открыть соответствующий файл, пользователь получает неудовлетворительное впечатление от кнопки, которая ничего не делает при нажатии.

Итак - могу ли я узнать, есть ли какие-либо / нет зарегистрированных приложений, которые поддерживают открытие определенного типа документа? Очевидно, что экземпляры UIDocumentInteractionController могут это выяснить. Есть ли публичный API способ выяснить это?

Ответы на вопрос(2)

Ваш ответ на вопрос