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
キーを長押しすればヘルプが表示される親切仕様になっている。
ヘルプに表示する文字列は必要に応じてローカライズするとよいでしょう。