Выделите 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 оставайся выделенным