明示的にコンテクストメニューを表示

control + 左クリックや右クリック以外のアクションでコンテクストメニューを表示させる方法。(CloCalXのダブルクリックでコンテクストメニューを表示させているのはこれ)
NSViewのサブクラスに数行のコードを書けば出来てしまうみたい。その表示させたいアクションの中で、

NSMenu* menu = [self menuForEvent:theEvent];

として、すでに実装されている(これは、コードで書いていても、nib上でつないでいても同じ)本来のコンテクストメニューをとってくる。それから、

[NSMenu popUpContextMenu:menu withEvent:theEvent forView:self];

とすれば、取得したメニューがコンテクストメニューとしてちゃんと表示されるのです。簡単簡単。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*