У меня есть графический интерфейс openGL, и мне нужно всплывающее меню, которое будет вызываться при нажатии определенной кнопки на моем дисплее openGL. Я хочу отобразить меню, подобное тому, которое появляется при нажатии кнопки NSPopUP, но я не могу использовать саму кнопку Какао. Кажется, что лучший способ сделать это - использовать NSPopupButtonCell. Я не могу опубликовать свой код здесь, потому что я пишу код на Лиспе и получаю доступ к Какао через объективный мост C, но я просто хотел посмотреть, будет ли следующий псевдо-код отображать меню или есть очевидный недостаток логика:
• Pseudo Code for function that is called when button is pressed:
• Initialize an NSPopUpButtonCell Using initTextCell: "test" pullsDown: NO
• allocate an NSMenu using alloc
• add two menu items using addItem:
• set the menu of the popUpButtonCell to be the menu that was just allocated using setMenu:
• Next I tried two methods to try and get the menu to actually be displayed,
first I tried using drawWithFrame:inView: and when that did not work I also tried
using drawBezelWithFrame:inView: eventhough the docs said not to use but I just
tried it out of desperation.
• finally, when the draw methods did not work I tried using performClick: on the
popupButtonCell to try and simulate the click.
Ни один из этих методов не был успешным при отображении какого-либо меню. Есть ли другой способ программно открыть меню, содержащееся в ячейке?