【问题标题】:NSMenuItem Title which changes over time.NSMenuItem 随时间变化的标题。
【发布时间】:2013-03-29 00:32:56
【问题描述】:

我想实现一个标题随时间变化的 NSStatusItem。我的最终目标是在我设置的图像旁边的菜单栏中显示倒数计时器。也许我正在以错误的方式解决这个问题。但是我已经有一串字符随着时间的推移不断变化,代表计时器。我试图弄清楚如何将该字符串放在为我创建的菜单设置的图像旁边。

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

我已尝试多次调用 setTitle 方法,但它们似乎不起作用。只有 setTitle 的初始调用在对象初始化之前起作用。之后什么也没有发生。我想我可以释放 NSStatusItem 对象并在每次我想要更改计时器时重新创建它,但这似乎非常低效。我什至不确定它是否会起作用。

我还考虑过使用 setToolTip 方法来显示计时器倒计时。但这似乎与 setTitle 方法相同。一旦设置好,在释放 NSStatusItem 对象并创建一个新对象之前,您无法更改它。

任何建议将不胜感激。

谢谢

戴夫

【问题讨论】:

    标签: objective-c cocoa macos nsmenuitem nsstatusitem


    【解决方案1】:

    我回答了我自己的问题。 -setTitle 可以多次调用以动态更改倒数计时器的标题,不需要自定义视图。我的问题是我的计时器无法正常工作,并且我的菜单的长度不足以显示计时器的文本。我现在可以调用 setTitle 来刷新倒计时并每秒创建动态工具提示。我最初认为通过标准方法 setTitle 是不可能的。我错了。

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

    戴夫

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多