2010-11-03 44 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"]; 

戴夫

0

为什么不使用它的-setView:?您可以创建自己的自定义视图并根据需要进行更新。