上のアイキャッチ画像はドローンを表現してみたんですが、意外と気持ちわるくなってしまいました。
さて、外付けキーボードのキーボードショートカットを拾うためにUIKeyCommandを使いますが、
shift + command + A
のように複数の装飾キーを同時に登録したい場合もあるかと思います。この部分でちょっとハマりましたので解決法をご紹介。
デフォルト定数をなぜか複数セットできない
ネットを徘徊してみると、
modifierFlags: UIKeyModifierFlags.Shift | UIKeyModifierFlags.Commandのように
UIKeyModifierFlags.Shift | UIKeyModifierFlags.Command
とやれば同時登録できるみたいなこと書いてあるんですが、フツーにエラーなんですよ。笑これに小一時間悩んだですが、rawValueを直接ぶち込んで差し上げましょう。
UIKeyModifierFlags.init(rawValue: 1048576 | 131072)
各キーのrawValueをこちら。
// AlphaShift:65536 // Alternate:524288 // Command:1048576 // Shift:131072 // Control:262144
これで複数の装飾キーをひとつのアクションに登録させることができます。
(おまけ)装飾キーなしの場合
逆に装飾キーをなにも登録したくないときもあるかと思います。
たとえばtabキーのみなどはその典型ですね。
この場合は
UIKeyModifierFlags.init(rawValue: 0)を直接ぶち込んで差し上げましょう。
ちなみにtabキーの登録は
input:
引数に"\t"
で、returnキーは
"\n"
とか"\r"
だった気がします(間違ってたらスミマセン)個人的にはスペースキーも装飾キーとして使いたかったりするんですがiOS9では無理っぽいですね。