Откройте My application из моего расширения клавиатуры в Swift 3.0
Я пытаюсь открыть со своего расширения клавиатуры. У меня есть пользовательская клавиатура, и я должен добавить эту клавиатуру из настроек. На моей пользовательской клавиатуре есть одна кнопка «Показать больше», и я хочу открыть свое приложение, нажав эту кнопку.
Итак, я попробовал следующий код:
let context = NSExtensionContext()
context.open(url! as URL, completionHandler: nil)
var responder = self as UIResponder?
while (responder != nil) {
if responder?.responds(to: Selector("openURL:")) == true {
responder?.perform(Selector("openURL:"), with: url)
}
responder = responder!.next
}
Работает успешно, но, как мы знаем, по-быстромуSelector("method_name:")
устарела и использовать#selector(classname.methodname(_:))
вместо этого, так что дает предупреждение. И я хочу решить это предупреждение. Итак, я попробовал, как Xcode автоматически предложил:
if responder?.responds(to: #selector(UIApplication.openURL(_:))) == true {
responder?.perform(#selector(UIApplication.openURL(_:)), with: url)
}
Также попробовал:
if responder?.responds(to: #selector(NSExtensionContext.open(_:))) == true {
responder?.perform(#selector(NSExtensionContext.open(_:)), with: url)
}
Я также пробовал другие возможные пути, но не повезло. Если кто-нибудь знает, как это сделать, пожалуйста, дайте мне знать.
Я сослался на эту ссылку, ответ Хулио Бэйлона: