Включение сочетаний клавиш на iPad для приложения, которое поддерживает iOS 12 и 13 - PullRequest
0 голосов
/ 03 мая 2020

У меня есть приложение iOS, которое поддерживает iOS 10 вплоть до iOS 13 и недавно добавило поддержку Catalyst. Благодаря расширению AppDelegate поддерживаются сочетания клавиш, и я хотел бы также включить их на iPad.

extension AppDelegate {
  override func buildMenu(with builder: UIMenuBuilder) {
    super.buildMenu(with: builder)
    guard builder.system == .main else { return }

    // Add menus and shortcuts
  }
}

Это прекрасно компилируется для цели Catalyst, но при сборке для iOS следующее ошибка: «UIMenuBuilder» доступен только в iOS 13.0 или новее

Очевидным решением является проверка доступности:

@available(iOS 13.0, *)
extension AppDelegate {
  override func buildMenu(with builder: UIMenuBuilder) {
    super.buildMenu(with: builder)
    guard builder.system == .main else { return }

    // Add menus and shortcuts
  }
}

, но затем ошибка меняется на Переопределение 'buildMenu' должно быть таким же доступным, как и объявление, оно переопределяет .

Так что пока я исключил расширение из сборки на iOS, чтобы получить работающую сборку, но это означает отсутствие ярлыков на iPad.

...