Swift 从ViewController设置菜单栏图标
如何从另一个ViewController更改MacOS应用程序的菜单栏图标Swift 从ViewController设置菜单栏图标,swift,xcode,appdelegate,menubar,nsstatusitem,Swift,Xcode,Appdelegate,Menubar,Nsstatusitem,如何从另一个ViewController更改MacOS应用程序的菜单栏图标 AppDelegate.swift(初始化菜单栏图标) ViewController.swift(尝试设置菜单栏图标❌) 我找到了这个,但这并没有改变我的菜单栏图标: let image=NSImage.init(名为:NSImage.Name(rawValue:“AltAppIcon”)) NSApp.applicationImage=图像 查看BOINC图标在其菜单栏右下角的自定义暂停符号/徽章。此应用程序
- AppDelegate.swift(初始化菜单栏图标)
- ViewController.swift(尝试设置菜单栏图标❌)李>
let image=NSImage.init(名为:NSImage.Name(rawValue:“AltAppIcon”))
NSApp.applicationImage=图像
查看BOINC图标在其菜单栏右下角的自定义暂停符号/徽章。此应用程序的图标会发生变化。他们是否会将该文件的名称写入并将其更改为“暂停图标”图像
✅更新* 设置菜单栏图标的
AppDelegate.swift
函数起作用:
AppDelegate.swift
func setIcon() {
let onIcon = NSImage(named: "fv-mini-icon-green")
statusItem.button?.image = onIcon
}
ViewController.swift
func setIcon() {
let onIcon = NSImage(named: "fv-mini-icon-green")
statusItem.button?.image = onIcon
}
func taskOnIcon(){
DispatchQueue.main.async(执行:{
将appDele=NSApplication.shared.delegate设为!AppDelegate
appDele.setIcon()
})
}
这里有一种方法
class AppDelegate: NSObject, NSApplicationDelegate {
var statusBarItem: NSStatusItem!
func applicationDidFinishLaunching(_ aNotification: Notification) {
let statusBar = NSStatusBar.system
statusBarItem = statusBar.statusItem(withLength: 16)
let button = statusBarItem.button
button?.image = NSImage(named: "fv-mini-icon-green")
// .. other code here
菜单栏图标是
NSStatusItem
实例的一部分请参见此处: