プログラムでポップアップメニューを作成し、デリゲートメソッドmenuNeedsUpdate:(NSMenu *)メニューで更新してから、popUpMenuPositioningItem:nil atLocation:mouseLoc inView:nilメソッドを使用して表示しています。
マウスコントロールに関する限り、これは正常に機能します。ただし、キーボード(文字または矢印キー)を使用すると、menuNeedsUpdate:がすべて、ルートメニューとサブメニューに対して呼び出されることに気付きました。これは非常に非効率的であり、キーボードを介したメニューの使用が遅くなります。
なぜこうなった?それを回避または停止する方法はありますか?