在Swift中,可以使用UIKeyCommand数组来定义不同视图控制器的快捷键。以下是一个使用代码示例:
class ViewController: UIViewController {
override var keyCommands: [UIKeyCommand]? {
return [
UIKeyCommand(input: "A", modifierFlags: .command, action: #selector(handleCommandA)),
UIKeyCommand(input: "B", modifierFlags: .command, action: #selector(handleCommandB))
]
}
@objc func handleCommandA() {
// 处理按下快捷键A的操作
}
@objc func handleCommandB() {
// 处理按下快捷键B的操作
}
}
class SecondViewController: UIViewController {
override var keyCommands: [UIKeyCommand]? {
return [
UIKeyCommand(input: "C", modifierFlags: .command, action: #selector(handleCommandC)),
UIKeyCommand(input: "D", modifierFlags: .command, action: #selector(handleCommandD))
]
}
@objc func handleCommandC() {
// 处理按下快捷键C的操作
}
@objc func handleCommandD() {
// 处理按下快捷键D的操作
}
}
在上面的代码中,ViewController类和SecondViewController类分别重写了keyCommands属性,并返回了不同的UIKeyCommand数组。每个UIKeyCommand对象都定义了一个快捷键,以及按下快捷键时执行的操作。你可以根据需要添加更多的UIKeyCommand对象。
请注意,为了使keyCommands属性生效,你需要在视图控制器中设置isModalInPresentation属性为false。这可以通过在视图控制器的viewDidLoad方法中添加以下代码来实现:
override func viewDidLoad() {
super.viewDidLoad()
isModalInPresentation = false
}
这样,不同的视图控制器就可以有不同的UIKeyCommand数组来定义自己的快捷键了。