Xcode ショートカットキーを実装する - shirajira/family-account-ios GitHub Wiki
Xcode ショートカットキーを実装する
やりたいこと
外部キーボード入力によるショートカットキーを実装したい!
実装方法
1. ショートカットキーに対応したメソッドを実装する
@objc func doSomething() {
// ...
}
@objc は必須。
2. ショートカットキーを受け付ける
UIViewController を継承していることが条件。
keyCommands をオーバーライドする。
class XxxxxxViewController: UIViewController {
override var keyCommands: [UIKeyCommand]? {
let commands = [
UIKeyCommand(input: "s", modifierFlags: [.command], action: #selector(doSomething), discoverabilityTitle: "Something"),
]
return commands
}
@objc private func doSomething() {
// ...
}
}
各ショートカットキーの動作と割り当てを UIKeyCommand に登録し,その配列を返せばよい。
UIKeyCommand の引数は以下のとおり:
input: 対応するキー。大文字か小文字かは問わない?modifierFlags: 修飾キー。配列形式なので複数指定することもできるaction: ショートカットキーの動作。#selectorでメソッドを指定するdiscoverabilityTitle: ヘルプに表示する文字列
iOS,iPadOS などでは当該 ViewController 上で command キーを長押しすればヘルプが表示される親切仕様になっている。
ヘルプに表示する文字列は必要に応じてローカライズするとよいでしょう。