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