NSMenuItem Заголовок, который меняется со временем. - PullRequest
3 голосов
/ 03 ноября 2010

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

statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
[statusItem setTitle:"29:30"];

Я пробовал несколько вызовов метода setTitle, но, похоже, они не работают. Только начальный вызов setTitle работает до инициализации объекта. После этого ничего не происходит. Я думаю, я мог бы выпустить объект NSStatusItem и воссоздавать его каждый раз, когда я хочу, чтобы таймер изменился, но это кажется очень неэффективным. Я даже не уверен, сработает ли это.

Также я рассмотрел использование метода setToolTip для отображения таймера обратного отсчета. Но это похоже на метод setTitle. Как только он установлен, вы не можете изменить его, пока не отпустите объект NSStatusItem и не создадите новый.

Любые предложения будут оценены.

Спасибо

Dave

Ответы [ 2 ]

2 голосов
/ 04 ноября 2010

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

statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
[statusItem setTitle:"29:30"];

Dave

0 голосов
/ 03 ноября 2010

Почему бы не использовать его -setView?Вы можете создать свой собственный вид и обновлять его по своему усмотрению.

...