MacアプリのNSMenuを任意のタイミングで消したい
Macアプリ の NSMenu (こちら↓のスクリーンショットの「設定・ヘルプ」というのです)を任意のタイミングで消します。
https://gyazo.com/88e081bddfc3e21dd1a07454195387e3
メニューはモーダル的に表示されるので、メニューを選択するか、メニュー以外の場所をクリックすると自動的に消えます。
しかし、メニューに追加した NSMenuItem の view に追加したビューをクリックした場合は、メニューは自動的に閉じてくれません。
そういうときは、任意のタイミングで cancelTracking() を実行します。
使用例
https://gyazo.com/80d51e046fc2c788f8bb463cbf5ac0d2
たとえば、カレンダーから日付を選択するメニューで、日付を選択したらこちら↓の delegate メソッドを呼び出します。
code: Swift
func didSelect(_ date: Date, sender: CalendarView) {
calendarMenu.cancelTracking()
}
そうすると、日付を選択したらメニューが閉じます。