Я работаю над деталями кнопки всплывающих символов, аналогичной тому, что Xcode 3 находится в верхней части окна редактора.
Мой объект-контроллер является делегатом NSMenu, который отображается, когда отображается NSPopUpButton. Я реализую два метода numberOfItemsInMenu: и menu:updateItem:atIndex:shouldCancel:, чтобы заполнить меню прямо перед его отображением.
Однако название и изображение выбранного NSMenuItem должны меняться каждый раз, когда пользователь меняет выделение в редакторе NSTextView или вносит изменения в текст; как и в случае с Xcode.
Проблема, с которой я сталкиваюсь, заключается в том, что пользователь нажимает на NSPopUpButton, чтобы отобразить NSMenu, выбранный NSMenuItem, и элемент, который должен быть выбран, не соответствует, так как меню не имеет значения, t имеет правильное количество элементов.
Мне интересно, есть ли способ контролировать, какой из NSMenuItem изначально выделяется и отслеживается, когда пользователь нажимает, чтобы открыть меню. Как бы то ни было, первый элемент, который он всегда выделял и отслеживал, или, если пользователь ранее выбрал элемент, этот элемент подсвечивается и отслеживается.
Я попытался объяснить, насколько мог, но вот изображение, иллюстрирующее мою проблему:

Я хочу, чтобы выделенный элемент был таким же, как выбранный элемент, когда пользователь открывает меню. Любые идеи?