StoryBoardからキーバインド(KeyEquivalent)を設定できるが、
コードからも設定できる。
目次
とりあえず使えればいい
menu itemのReferencing OutletsをAppDelegateなどに設置。- 設定したいタイミングで、
<設置したoutlet名>.keyEquivalentに設定したいキーバインドの文字列(Tならt)などを代入する。 - 終わり。
コードで言えばこんな感じ
// メニューアイテムの参照。StoryBoardから接続する。
@IBOutlet weak var menu_something: NSMenuItem!
func applicationDidFinishLaunching(_ aNotification: Notification) {
// これでキーバインドが再設定される。
menu_something.keyEquivalent = "t"
}
修飾キーも使いたい
大文字で指定するとシフトキーが押される必要があるので注意
代入値 実際のバインド
t T
T Shift+T
また、⌘や、control、optionなどを修飾キーとして利用したい時は、これに合わせて別のプロパティへの代入が必要。
// これは、Shift+Tの扱いになる。
menu_something.keyEquivalent = "T"
// これをつけると、さらに⌘が必要になる
menu_something.keyEquivalentModifierMask = NSEventModifierFlags.command
複数の修飾キーを使いたい
NSEventModifierFlagsのプロパティを組み合わせる時は以下のようにする
// ⌘とcontrolを同時押し
let newmask = NSEventModifierFlags.command.union(NSEventModifierFlags.control)
menu_something.keyEquivalentModifierMask = newmask
3つ以上使いたいなら、メソッドチェーンでunionしていけばOK。
勉強用図書



コメント