Вы не используете возвращенный экземпляр UIKeyCommand up
.
Apple: "После создания объекта ключевой команды вы можете добавить его в контроллер представления, используя addKeyCommand: метод контроллера представления. Вы также можете переопределить любой класс респондента и вернуть команду ключа непосредственно из свойства keyCommands респондента. «
class Test: UIViewController{
func viewDidLoad(){
super.viewDidLoad()
setKeys()
}
func setKeys() {
let up = UIKeyCommand(input: UIKeyCommand.inputUpArrow, modifierFlags: [], action: #selector(upPressed))
self.addKeyCommand(up)
}
@objc func upPressed() {
print("Hello")
}
}
Протестировано это с помощью симулятора и аппаратной клавиатуры.
ДОПОЛНИТЕЛЬНО: Если вы собираетесь реализовать его через UIView напрямую, вы должны сделать следующее: «... Вы также можете переопределить любой класс респондента и вернуть команду ключа непосредственно из свойства keyCommands респондента». поскольку UIView соответствует UIResponder
class CustomView: UIView{
override var keyCommands: [UIKeyCommand]? {
return [UIKeyCommand(input: UIKeyCommand.inputUpArrow, modifierFlags: [], action: #selector(upPressed))]
}
@objc func upPressed(){
print("hello world")
}
}