NSMenuItemのkeyEquivalentを任意に設定する(ファンクションキーなど)
WiFiTogglerで使用したので記録しておきます。 github.com
サンプルコード
let menuitem:NSMenuItem = NSMenuItem(title: "foo item", action: #selector(AppDelegate.foo), keyEquivalent: String(utf16CodeUnits: [unichar(NSF5FunctionKey)], count: 1)) menuitem.keyEquivalentModifierMask = Int(NSEventModifierFlags.ShiftKeyMask.rawValue) menu.addItem(menuitem1)
上記のサンプルでは、Shift + F5をkeyEquivalentに設定しています。
String(utf16CodeUnits: [unichar(NSF5FunctionKey)], count: 1)
の部分がファンクションキーを設定する部分になっており、これは正しいか怪しいです。下記のWebページを参考にしました。
2行目ではShiftキーをkeyEquivalentModifierMaskに設定しており、デフォルトのCommandキーを書き換えています。おそらく、複数のKeyMaskを同時に登録できるはずです。