Есть ли способ программно выделить элемент строки состояния?

Я хотел бы выполнить следующее:
когда я нажимаю на элемент строки состояния (NSStatusItem) Я хочу выделять его (без меню) на неопределенный срок, и когда приложение теряет фокус, я хочу перестать выделять его.

Есть ли способ сделать это? Я не могу найти это, че.

2 ответа

Решение

Вы, вероятно, можете сделать это с помощью пользовательского представления, которое отправляет элемент состояния в drawStatusBarBackgroundInRect:withHighlight: сообщение

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

Старый вопрос, но я думаю, что стоит добавить этот альтернативный ответ.

Это не будет автоматически отменять выделение, когда приложение теряет фокус, но позволяет выделять без использования пользовательского представления (как требует другой ответ):

NSStatusItem *statusItem = [self getStatusItem];
[statusItem.button setHighlighted:YES];

Вы можете отменить выделение вручную, используя тот же метод:

[statusItem.button setHighlighted:NO];

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

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