【问题标题】:How to efficiently assign NSStatusItem images and alternte images?如何有效地分配 NSStatusItem 图像和替代图像?
【发布时间】:2009-07-26 10:11:03
【问题描述】:

假设我有这样的代码......

- (id) init {
    ...
    self.myImage1 = [NSImage imageNamed:@"some_image_name"]; // setter retains
    ...
}

- (void) setStatusItemImage
{
    [self.statusItem setImage:self.myImage1];
}

我还想为状态项设置动画,因此我创建了 6 个“正在更新”状态项图标的变体,并将其循环到 NSTimer,目标方法与上述类似。问题是:

  1. 如何有效地分配图像?例如如果我使用保留/预加载的 NSImage 可以吗?
  2. 有没有一种方法可以更有效地为状态项设置动画?我不知道任何核心动画的东西,所以请多多包涵。

【问题讨论】:

    标签: objective-c cocoa nstimer nsimage nsstatusitem


    【解决方案1】:

    俗话说,过早优化是万恶之源。先测量,然后优化慢的部分,然后再次测量以确保它有帮助。

    也就是说,imageNamed: 慢。您几乎总是应该使用 NSBundle 和 -[NSImage initWithContentsOfFile:]

    如果我使用保留/预加载的 NSImage 可以吗?

    你为什么不呢?为什么状态项会关心图像是否被其他东西保留?

    有没有办法以更有效的方式为状态项设置动画?

    setImage: 是唯一的方法。只要你不是每次都加载每张图片,你应该没有效率问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 2010-10-26
      • 2015-03-02
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      相关资源
      最近更新 更多