Я сделал это, вызвав метод dismiss, как показано ниже

даю расширение приложения Safari, используя XCode 8.3 и Swift 3, следуяРуководство по программированию расширения приложения Safari, Расширение включает в себятрещать появляется при нажатии на элемент панели расширения. Всплывающее окно содержит несколько кнопок, связанных с действиями, которые может выполнять пользователь.

Я хочу нажать одну из этих кнопок, чтобы закрыть поповер после того, как его действие выполнено. По умолчанию щелчок в любом месте за пределами всплывающего окна закрывает его, но я не смог найти другого способа закрыть всплывающее окно, ни в руководстве, ни вдокументы.

я знаю этоNSPopover имеетperformClose метод, но, кажется, нет способа получить доступ к самому поповеру из расширения: расширение приложения позволяет только предоставитьSFSafariExtensionViewController, чье содержимое волшебным образом появляется в поповере.

Я также пытался использоватьdismissViewController как описано вэтот ответ StackOverflow, но на мой взгляд контроллерself.presenting всегда ноль, иself.dismissViewController(self) просто вылетает расширение с сообщением:

dismissViewController:: Error: maybe this view controller was not presented?.

Наконец, я заметилсвязанный вопрос о программнооткрытие всплывающее окно элемента панели инструментов за последние 6 месяцев осталось без ответа. Это заставляет меня подозревать, что у Apple могут быть строгие ограничения на то, как можно открывать и закрывать поповер. Даже если это так, было бы неплохо знать наверняка, каковы ограничения.

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

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