gpt4 book ai didi

swift - 将图像从 Assets 加载到 NSImage 不断出错,期望 NSImage.Name

转载 作者:可可西里 更新时间:2023-11-01 00:33:22 25 4
gpt4 key购买 nike

我正在尝试将文件从 xcassets 加载到 NSImage,其中 Assets 名称是 Logo 。

我试过这个:

let logoIcon = NSImage(named: "logo")

但我一直收到这个错误:

Cannot convert value of type 'String' to expected argument type 'NSImage.Name'

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

我正在尝试在 macOS 上做这件事,如果这会有所作为的话

编辑:

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

并且我调整了代码,将图标加载到 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
}

}

最佳答案

根据 Apple Developer Forums: 中的这个答案

... seems like NSImage(named: String) has been replaced by NSImage(named: NSImage.Name) in Swift 4.

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

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

并以这种方式使用它:

let logoIcon = NSImage(named: .logo)

关于swift - 将图像从 Assets 加载到 NSImage 不断出错,期望 NSImage.Name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49052950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com