1

所以我尝试向我的 React Native iOS 应用程序添加键盘快捷键。这样用户就可以通过 iPad 上的外接键盘来利用这些快捷键。

我创建了一个 AppDelegate.swift 和 RootViewController.swift 只在我的 React Native 应用程序中使用 swift。到目前为止,我的基本应用程序正在运行。它还使用添加到 RootViewController 的 KeyCommands 的代码进行编译,但在按下 cmd + s 时不会触发操作,或者在 iPad 上按住 cmd 键时不会显示可用命令。

AppDelegate.swift

import Foundation

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

 var window: UIWindow?

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions [UIApplication.LaunchOptionsKey: Any]?) -> Bool {


   var rootView: RootViewController = RootViewController()

   self.window = UIWindow(frame: UIScreen.main.bounds)
   var rootViewController = UIViewController()

   rootViewController = rootView

   self.window!.rootViewController = rootViewController;
   self.window!.makeKeyAndVisible()

  return true
 }
}

RootViewController.swift

import Foundation
import UIKit


class RootViewController: UIViewController {

  var bridge: RCTBridge!

  override func viewDidLoad() {
    super.viewDidLoad()

    let jsCodeLocation = NSURL(string: "http://localhost:8081/index.bundle?platform=ios&dev=true")

    let rootView = RCTRootView(bundleURL:jsCodeLocation as URL!, moduleName: "tinyWhaleApp", initialProperties: nil)

    self.bridge = rootView?.bridge

    self.view = rootView

  }


  override func becomeFirstResponder() -> Bool {
    return true
  }

  override var keyCommands: [UIKeyCommand]? {
    return [
      UIKeyCommand(input: "s", modifierFlags: [.command], action: "saveFile:", discoverabilityTitle: "Save"),
    ]
  }

  func saveFile(sender: UIKeyCommand) {
    print("saving file")
  }
}

如果有人可以帮助我使用外部键盘在 iPad 上使用键盘快捷键,那就太好了。

4

0 回答 0