Прямого эквивалента не существует, кроме как в Carbon, который не рекомендуется.
Для определения правого щелчка следуйте этим инструкциям . Они гарантируют, что вы будете правильно определять щелчки правой кнопкой мыши и удерживать их правой кнопкой мыши, а также отображать меню, когда должны, и не отображать его, когда не должны.
Для следующих событий вы можете попробовать [[NSRunLoop currentRunLoop] runMode:NSEventTrackingRunLoopMode untilDate:[NSDate distantFuture]]
. Вам нужно будет вызывать это несколько раз, пока пользователь не выберет один из пунктов меню.
Использование nextEventMatchingMask:NSRightMouseUpMask
не будет работать во всех или даже в большинстве случаев. Если пользователь нажимает правой кнопкой мыши на элементе управления , правая кнопка мыши поднимается сразу после его нажатия, без выбора пункта меню, и выбор пункта меню, вероятно, (хотя и не обязательно) произойдет через левую кнопку мыши. Лучше просто повторять цикл выполнения, пока пользователь не выберет что-либо или не закроет меню.
Я не знаю, как сказать, что пользователь закрыл меню, ничего не выбрав.