所以我尝试向我的 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 上使用键盘快捷键,那就太好了。