Как добавить опцию щелчка правой кнопкой мыши в меню в Xcode и Interface Builder? - PullRequest
4 голосов
/ 11 июня 2011

Я пытаюсь создать меню, которое по-разному работает при щелчке левой и правой кнопки мыши (и, возможно, в будущем их можно будет комбинировать, например, при нажатой клавише «Control», «Option» или «Command»).Прямо сейчас у меня есть меню с приложением statusMenu, которое открывается слева и справа.В statusMenu есть пять опций: один элемент выполнения, три элемента настройки предпочтений и один элемент выхода.

Я бы хотел немного отделить поведение, так как меню представляет собой пони с одним трюком.Щелчок левой кнопкой мыши по нему должен выполнить функцию, щелчок правой кнопкой мыши должен открыть меню именно таким, как оно есть (включая выполнение).

Есть идеи, как это сделать?

Прямо сейчас явызывая statusMenu из кода, как обычно с statusMenus

[statusItem setMenu:statusMenu];

1 Ответ

3 голосов
/ 13 июня 2011

Для этого вам нужно будет отобразить меню вручную. Один из способов сделать это - создать собственное представление и поместить его в элемент состояния, а затем использовать обработчики событий mouseUp: и rightMouseUp: для выполнения ваших действий. Вы также можете получить ключи модификации от события, чтобы выполнить другие действия. Также возможно использовать встроенный механизм целевого действия элемента состояния и получать информацию из методов класса NSEvent +pressedMouseButtons и +modifierFlags. В любом случае, вы можете отобразить свое меню, используя метод -popUpStatusItemMenu: NSStatusItem.

Пример обработки левого и правого щелчков с помощью пользовательского представления см. мой ответ на этот вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...