Есть ли способ программно выделить элемент строки состояния?
Я хотел бы выполнить следующее:
когда я нажимаю на элемент строки состояния (NSStatusItem
) Я хочу выделять его (без меню) на неопределенный срок, и когда приложение теряет фокус, я хочу перестать выделять его.
Есть ли способ сделать это? Я не могу найти это, че.
2 ответа
Вы, вероятно, можете сделать это с помощью пользовательского представления, которое отправляет элемент состояния в drawStatusBarBackgroundInRect:withHighlight:
сообщение
Я сомневаюсь, что есть какой-то способ сделать это без пользовательского представления, поскольку, как я уже упоминал в своем комментарии к вопросу, держать элемент выделенным, когда у пользователя нет мыши, выглядит плохо.
Старый вопрос, но я думаю, что стоит добавить этот альтернативный ответ.
Это не будет автоматически отменять выделение, когда приложение теряет фокус, но позволяет выделять без использования пользовательского представления (как требует другой ответ):
NSStatusItem *statusItem = [self getStatusItem];
[statusItem.button setHighlighted:YES];
Вы можете отменить выделение вручную, используя тот же метод:
[statusItem.button setHighlighted:NO];
Обратите внимание, что я получил этот ответ от аналогичного вопроса здесь.