Выделите NSStatusItem при программном запуске

У меня есть NSStatusItem с приложенным меню, которое я вызываю с помощью глобальной горячей клавиши. Если я щелкаю пункт меню, я получаю выделение, как обычно, если я использую горячую клавишу, выделение не срабатывает. Кто-нибудь знает способ вызвать подсветку?

Я попытался переопределить вид и нарисовать его сам в drawRect но если есть лучший способ сделать это, я хотел бы услышать. Спасибо!

Причина, по которой я не хочу переопределять вид, заключается в том, что мне приходится обрабатывать расположение значков, нажимать, чтобы активировать меню и т. Д.

2 ответа

Это делает волшебство в macOS 10.13.6 с Xcode 10.

guard let m = statusItem.menu else { return }
statusItem.button?.isHighlighted = true
statusItem.popUpMenu(m)
statusItem.button?.isHighlighted = false

Обратите внимание, что в последней строке требуется отключить подсветку значка, когда меню закрывается.

Использование:

[[statusItem button] highlight:true];

Как выясняется setHighlighted: а также highlight не делай то же самое:
NSStatusBarButton оставайся выделенным

Другие вопросы по тегам