メモ程度の内容ですが・・・
最近macOSアプリ開発でCocoaを触ることがあるのでハマったところとか気づいたところを書いておきます。
環境
Xcode 9.4.1
Swift4
Deployment Target 10.13
内容
Cocoaでは flagsChanged()
で修飾キー(ShiftとかAltとかCommand)が押された状態を取得できますが、複数キーが押された場合どうすればその状態を確認できるのだろうと少しハマりました。
解決方法
2018/07/21 修正
コメントいただきましたが、modifierFlagsがOptionSetだったので旧方法より短く書くことができます。
if event.modifierFlags.contains([.shift, .command]) {
// 処理
}
旧方法
なんのことはない、複数キーをANDでとればいいだけでした。
if event.modifierFlags.contains(NSEvent.ModifierFlags.shift) && event.modifierFlags.contains(NSEvent.ModifierFlags.command) {
// 処理
}