无法在 mac 屏幕保护程序版本上加载图像(它适用于 Xcode 调试版本)

Can't load images on mac screensaver release build (it works on Xcode debug build)

我从 here 获得了这个 mac 屏幕保护程序示例。

我将其更改为显示图像而不是文本字段。

问题是这样的:它可以显示任何 Xcode 对象,例如 textView。 textField、Button 等...但它无法在 imageView 上加载图像。 (它可以在 Xcode 调试版本上加载图像,但不能在 mac 屏保上的发布版本上加载图像)

Release Build Screenshot 这是我显示图像的代码:

  let imageView = NSImageView(frame: self.frame)
  imageView.image = NSImage(named: "Image")
  imageView.layer?.backgroundColor = NSColor.red.cgColor
  imageView.backgroundColor(.red)
  addSubview(imageView)
  DispatchQueue.main.async {
      imageView.frame = CGRect(x: 100, y: 100, width: 200, height: 100)
      self.setNeedsDisplay(imageView.frame)
  }

我很确定它无法访问图像文件,但我该如何解决这个问题? 实际上屏幕保护程序的行为很奇怪,当我在那个 ImageView 之后添加另一个 UI 元素时,它们都没有显示在屏幕上。

macOS 屏保有什么问题? (我从一些网站下载了一些第三方屏保也是黑屏。)

NSImage(named:) 从主应用程序包中加载,但您的图像在插件中,因此请使用如下内容(从包含您的 class 的包中加载)

imageView.image = Bundle(for: type(of: self)).image(forResource: "Image")

使用 Xcode 11.2 / macOS 10.15 进行测试。图片在屏保插件目标的资源中。