2010-11-03 4 views
3

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

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

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

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

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

Спасибо

Дэйва

ответ

2

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

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

Dave

0

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