I want to add a menu item into the application’s main menu that will be used quite rare. I want it to be hidden by default and show it only when user hold down Option key. How do i do this?
It seems that I should handle flagsChanged:, but it is NSResponder‘s method and NSMenu does not inherits from NSResponder? I tried it inside main window controller, and it works when I press Option key before I click on menu. The following use case doe not work: click on menu item (there is no item), press option key — my item should appear, release option key — item should disappear.
I’ve also tried NSEvent’s addLocalMonitorForEventsMatchingMask:handler: and addGlobalMonitorForEventsMatchingMask:handler: for NSFlagsChangedMask but when option key pressed while main menu is open neither local or global handlers are not fired.
How can I do this?
Add the following to applicationDidFinishLaunching.
then add
The timer only fires while controls are being tracked so it’s not too much of a performance hit.