Щелкните правой кнопкой мыши NSStatusItem.

У меня есть NSStatusItem, и я хочу открыть всплывающее меню, щелкнув элемент правой кнопкой мыши. Я создал подкласс NSView и перезаписал метод - (void)rightMouseDown:(NSEvent *)event. Я также реализовал - (void)mouseDown:(NSEvent *)event для просмотра флагов модификаторов. Моя проблема в том, что представление не получает NSRightMouseDown-Event. И я не знаю, почему? Есть идеи, как получить это событие? Естественно, я добавил пользовательский вид в элемент статуса.

- UPDATE-
Дополнительная информация: я добавил NSImageView в подвиды своего пользовательского представления.

— ОБНОВЛЕНИЕ 2 —
Дополнительная информация: соответствует протоколу NSMenuDelegate.


person papr    schedule 30.01.2010    source источник
comment
Я озадачен. Я только что создал короткое тестовое приложение и смог получать события mouseDown и rightMouseDown. Может быть, вы могли бы дать нам больше информации о дизайне вашего подкласса NSView?   -  person MJeffryes    schedule 31.01.2010
comment
Возможный дубликат Cocoa: щелкните правой кнопкой мыши NSStatusItem   -  person BB9z    schedule 03.01.2019


Ответы (1)


В порядке. Проблема решена. Проблема была в NSImageView. Я создал подкласс и теперь перенаправляю все события mouseDown и rigthMouseDown в его суперпредставление (мое пользовательское представление).

person papr    schedule 31.01.2010