将图像从 Assets 加载到 NSImage 不断出现错误,需要 NSImage.Name

2024-02-24

我正在尝试从以下位置加载文件xcassets to an NSImage,其中资产名称是 logo。

我试过这个:

let logoIcon = NSImage(named: "logo")

但我不断收到此错误:

无法将“String”类型的值转换为预期的参数类型“NSImage.Name”

我查看了 Apple 开发文档,据我所知,这是正确的。但由于某种原因,我不断收到错误。

我正在尝试在 macOS 上执行此操作,如果这会有所不同的话

EDIT:

所以我正在尝试制作一个顶部菜单栏应用程序。

我已经调整了代码,以便将图标加载到logoIcon但顶部菜单栏中未设置图标。

import Cocoa

extension NSImage.Name {
    static let logo = NSImage.Name("Logo")

}


@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet weak var window: NSWindow!
    @IBOutlet weak var statusMenu: NSMenu!

    let statusItem = NSStatusBar.system.statusItem(withLength: -1)


    func applicationDidFinishLaunching(_ aNotification: Notification) {

        // statusItem.title  = "SECRET"

        let logoIcon = NSImage(named: .logo)

        // icon?.isTemplate = true
        statusItem.image = logoIcon
        statusItem.menu = statusMenu

    }

    func applicationWillTerminate(_ aNotification: Notification) {
        // Insert code here to tear down your application
    } 

}

根据这个答案苹果开发者论坛: https://forums.developer.apple.com/thread/80627

...似乎 NSImage(named: String) 已在 Swift 4 中被 NSImage(named: NSImage.Name) 取代。

因此,按照答案中的建议,您可以创建 struct NSImage.Name 的扩展:

extension NSImage.Name {  
    static let logo = NSImage.Name("logo")  
} 

并以这种方式使用它:

let logoIcon = NSImage(named: .logo)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将图像从 Assets 加载到 NSImage 不断出现错误,需要 NSImage.Name 的相关文章

随机推荐

  • 向 parcoord 添加刻度(平行坐标图)

    这 MASS 包中的 parcoord 函数看起来不错 但是我如何添加刻度 四个y轴 代码在这里 ir lt rbind iris3 1 iris3 2 iris3 3 parcoord log ir c 3 4 2 1 col 1 0 1
  • 将 ImageView 对齐到布局 android 的右侧

    我有一个布局
  • 如何在 Rust 中彻底打破 tokio-core 事件循环和 futures::Stream

    我正在涉足 tokio core 并且可以弄清楚如何生成事件循环 然而 有两件事我不确定 如何优雅地退出事件循环以及如何退出事件循环内运行的流 例如 考虑这段简单的代码 它在事件循环中生成两个侦听器 并等待另一个线程指示退出条件 exter
  • Windows Powershell 有时不输出任何值(温度传感器)

    有时会出现没有显示温度传感器的情况 我使用 Powershell 来读取这些值 这经常有效 我想知道为什么 Windows 有时不返回任何内容 是在我的笔记本电脑 软件还是其他什么上吗 powershell Get WmiObject Cl
  • React 远程控制台日志记录

    我使用 Mongo 设置了 Express 服务器 以便在使用 React 对 Electron 应用程序进行调试测试期间记录控制台日志 我只是使用 ajax 发送通常使用 console log 打印的内容 这对于我想要记录的单个事件效果
  • 我应该调用什么 API 来获取系统正常运行时间?

    我想从基于 Linux 的系统上运行的 C 应用程序中获取系统正常运行时间 我不想调用 uptime 1 并解析输出 我想调用我怀疑存在的底层 C API 有人知道是否有这样的调用 或者 uptime 1 是否只是处理从 wtmp 获取的记
  • 为什么删除时会引发 Core Data NSManagedObject 错误?

    我正在尝试有效地批量删除很多NSManagedObjects 不使用NSBatchDeleteRequest 我一直在遵循一般程序这个答案 https stackoverflow com a 12116402 5513562 适用于 Swi
  • 垂直 div 间距

    如何用最少的代码水平分布3个div 我有 3 个具有相同类的 div 我需要水平分布它们 每个 div 之间有 19 像素的空间 目前我的解决方案是为前 2 个 div 提供 19 像素的右边距 并为第三个 div 分配一个单独的类 使其左
  • 将结构与 std140 对齐,CPU 端

    我想这是纯 C 问题和 OpenGL 问题之间的一种交叉 我有一个统一的缓冲区 并在其中分配 sizeof ShaderData 字节的空间 我在着色器的 GPU 端使用 std140 布局 根据 std140 规则 我需要在结构中的各个位
  • 设置从 Eclipse 运行的 Java 程序的内存

    我正在从 Eclipse 运行一个需要大量内存的 Java 应用程序 我可以把放在哪里 Xmms罢工 gt xms flag 您可以为特定运行配置设置 VM 参数 运行 运行配置 参数选项卡 VM 参数 顺便说一句 你可能想尝试 Xms代替
  • Microsoft MPI 不运行

    我正在尝试 Microsoft 的 MPI 实现 我从这里安装了CCP sdk http www microsoft com en us download details aspx id 239 http www microsoft com
  • 使用 Xamarin Forms 共享图像

    我创建了一个 Xamarin Forms PCL 解决方案 目前专注于 Android 项目 我正在尝试使用依赖服务来实现图像共享 图像位于 Android 项目的可绘制文件夹中 但是 每次我运行下面的代码时 应用程序都会崩溃并显示 发生未
  • 嵌套列表理解/合并嵌套列表

    我在理解嵌套列表理解结构时遇到问题 我有一个清单 gt gt gt test 1 2 3 4 5 6 7 8 If I do t2 for x in test for y in x t2 append y 然后它返回 gt gt gt t2
  • 我们可以使用 Yolo 来检测和识别图像中的文本吗

    目前我正在使用一种名为 Yolov2 的深度学习模型进行对象检测 我想用它来提取文本并将其保存在磁盘中 但我不知道该怎么做 如果有人了解更多那个 请告诉我 我使用张量流 Thanks 如果您使用预训练模型 则需要保存这些输出并将图像输入到字
  • 如何删除R中单词之间的空格?

    我一直在尝试消除或替换单词之间的空格 而不影响其他空格 一个例子是 string lt Hi buddy 3 256 225 25 365 425 并希望它是 string lt Hibuddy 3 256 225 25 365 425 我
  • 在 C# 中创建泛型方法

    我正在尝试将一堆类似的方法组合成一个通用方法 我有几种方法可以返回查询字符串的值 如果该查询字符串不存在或格式不正确 则返回 null 如果所有类型本身都可为空 那么这将很容易 但我必须对整数和日期使用可为空的泛型类型 这就是我现在所拥有的
  • 行为测试框架的测试覆盖率工具

    我们正在使用 Behave BDD 工具来自动化 API 是否有任何工具可以使用我们的行为案例提供代码覆盖率 我们尝试使用覆盖模块 但它不适用于 Behave 您可以运行任何具有覆盖范围的模块来查看代码使用情况 在你的情况下应该接近cove
  • 使用匿名对象输出带有破折号的 JSON 属性名称

    我正在使用第三方 API 如下所示 它用Json serializer输出 public Output string name object value 我必须将以下 json 字符串放入 C 的输出文件中 Output somename
  • 为什么我的 Visual Studio Community 2019 在“调试”>“Windows”下没有“模块”选项以及如何修复它?

    正如标题所示 我在 调试 gt Windows 下看不到任何 模块 子菜单 并且快捷键 Ctrl Alt U 没有任何作用 刚刚通过安装程序恢复了 Visual Studio 什么也没有 我有 VS 2019 Community 版本 16
  • 将图像从 Assets 加载到 NSImage 不断出现错误,需要 NSImage.Name

    我正在尝试从以下位置加载文件xcassets to an NSImage 其中资产名称是 logo 我试过这个 let logoIcon NSImage named logo 但我不断收到此错误 无法将 String 类型的值转换为预期的参