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。
勉強用図書
コメント